/*******************************************************************************
 * Copyright (c) 2017, 2018 IBM Corp. and others
 *
 * This program and the accompanying materials are made available under
 * the terms of the Eclipse Public License 2.0 which accompanies this
 * distribution and is available at http://eclipse.org/legal/epl-2.0
 * or the Apache License, Version 2.0 which accompanies this distribution
 * and is available at https://www.apache.org/licenses/LICENSE-2.0.
 *
 * This Source Code may also be made available under the following Secondary
 * Licenses when the conditions for such availability set forth in the
 * Eclipse Public License, v. 2.0 are satisfied: GNU General Public License,
 * version 2 with the GNU Classpath Exception [1] and GNU General Public
 * License, version 2 with the OpenJDK Assembly Exception [2].
 *
 * [1] https://www.gnu.org/software/classpath/license.html
 * [2] http://openjdk.java.net/legal/assembly-exception.html
 *
 * SPDX-License-Identifier: EPL-2.0 OR Apache-2.0 OR GPL-2.0 WITH Classpath-exception-2.0 OR LicenseRef-GPL-2.0 WITH Assembly-exception
 *******************************************************************************/

/*
 * This file may be included within an enum.
 * Only comments, preprocessor macros, and enumerator definitions are permitted.
 */

INSTRUCTION(BADIA32Op, int3,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xcc, 0, ModRM_NONE, Immediate_0),
            PROPERTY0(0),
            PROPERTY1(0)),
INSTRUCTION(ADC1AccImm1, adc,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x14, 0, ModRM_NONE, Immediate_1),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterIgnored | IA32OpProp_ByteTarget | IA32OpProp_ByteImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_TestsCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SetsCCForCompare)),
INSTRUCTION(ADC2AccImm2, adc,
            BINARY(VEX_L___, VEX_vNONE, PREFIX_66, REX__, ESCAPE_____, 0x15, 0, ModRM_NONE, Immediate_2),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterIgnored | IA32OpProp_ShortTarget | IA32OpProp_ShortImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_TestsCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SetsCCForCompare)),
INSTRUCTION(ADC4AccImm4, adc,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x15, 0, ModRM_NONE, Immediate_4),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterIgnored | IA32OpProp_IntTarget | IA32OpProp_IntImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_TestsCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SetsCCForCompare)),
INSTRUCTION(ADC8AccImm4, adc,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX_W, ESCAPE_____, 0x15, 0, ModRM_NONE, Immediate_4),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterIgnored | IA32OpProp_IntImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_TestsCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SetsCCForCompare | IA32OpProp1_LongTarget)),
INSTRUCTION(ADC1RegImm1, adc,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x80, 2, ModRM_EXT_, Immediate_1),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterInModRM | IA32OpProp_ByteTarget | IA32OpProp_ByteImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_TestsCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SetsCCForCompare)),
INSTRUCTION(ADC2RegImm2, adc,
            BINARY(VEX_L___, VEX_vNONE, PREFIX_66, REX__, ESCAPE_____, 0x81, 2, ModRM_EXT_, Immediate_2),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterInModRM | IA32OpProp_ShortTarget | IA32OpProp_ShortImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_TestsCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SetsCCForCompare)),
INSTRUCTION(ADC2RegImms, adc,
            BINARY(VEX_L___, VEX_vNONE, PREFIX_66, REX__, ESCAPE_____, 0x83, 2, ModRM_EXT_, Immediate_S),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterInModRM | IA32OpProp_ShortTarget | IA32OpProp_SignExtendImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_TestsCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SetsCCForCompare)),
INSTRUCTION(ADC4RegImm4, adc,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x81, 2, ModRM_EXT_, Immediate_4),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterInModRM | IA32OpProp_IntTarget | IA32OpProp_IntImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_TestsCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SetsCCForCompare)),
INSTRUCTION(ADC8RegImm4, adc,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX_W, ESCAPE_____, 0x81, 2, ModRM_EXT_, Immediate_4),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterInModRM | IA32OpProp_IntImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_TestsCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SetsCCForCompare | IA32OpProp1_LongTarget)),
INSTRUCTION(ADC4RegImms, adc,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x83, 2, ModRM_EXT_, Immediate_S),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterInModRM | IA32OpProp_IntTarget | IA32OpProp_SignExtendImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_TestsCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SetsCCForCompare)),
INSTRUCTION(ADC8RegImms, adc,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX_W, ESCAPE_____, 0x83, 2, ModRM_EXT_, Immediate_S),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterInModRM | IA32OpProp_SignExtendImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_TestsCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SetsCCForCompare | IA32OpProp1_LongTarget)),
INSTRUCTION(ADC1MemImm1, adc,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x80, 2, ModRM_EXT_, Immediate_1),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_ByteTarget | IA32OpProp_ByteImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_TestsCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SetsCCForCompare | IA32OpProp1_SupportsLockPrefix)),
INSTRUCTION(ADC2MemImm2, adc,
            BINARY(VEX_L___, VEX_vNONE, PREFIX_66, REX__, ESCAPE_____, 0x81, 2, ModRM_EXT_, Immediate_2),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_ShortTarget | IA32OpProp_ShortImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_TestsCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SetsCCForCompare | IA32OpProp1_SupportsLockPrefix)),
INSTRUCTION(ADC2MemImms, adc,
            BINARY(VEX_L___, VEX_vNONE, PREFIX_66, REX__, ESCAPE_____, 0x83, 2, ModRM_EXT_, Immediate_S),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_ShortTarget | IA32OpProp_SignExtendImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_TestsCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SetsCCForCompare | IA32OpProp1_SupportsLockPrefix)),
INSTRUCTION(ADC4MemImm4, adc,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x81, 2, ModRM_EXT_, Immediate_4),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_IntTarget | IA32OpProp_IntImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_TestsCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SetsCCForCompare | IA32OpProp1_SupportsLockPrefix)),
INSTRUCTION(ADC8MemImm4, adc,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX_W, ESCAPE_____, 0x81, 2, ModRM_EXT_, Immediate_4),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_IntImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_TestsCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SetsCCForCompare | IA32OpProp1_SupportsLockPrefix | IA32OpProp1_LongTarget)),
INSTRUCTION(ADC4MemImms, adc,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x83, 2, ModRM_EXT_, Immediate_S),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_IntTarget | IA32OpProp_SignExtendImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_TestsCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SetsCCForCompare | IA32OpProp1_SupportsLockPrefix)),
INSTRUCTION(ADC8MemImms, adc,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX_W, ESCAPE_____, 0x83, 2, ModRM_EXT_, Immediate_S),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SignExtendImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_TestsCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SetsCCForCompare | IA32OpProp1_SupportsLockPrefix | IA32OpProp1_LongTarget)),
INSTRUCTION(ADC1RegReg, adc,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x12, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SourceRegisterInModRM | IA32OpProp_ByteSource | IA32OpProp_ByteTarget | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_TestsCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SetsCCForCompare)),
INSTRUCTION(ADC2RegReg, adc,
            BINARY(VEX_L___, VEX_vNONE, PREFIX_66, REX__, ESCAPE_____, 0x13, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SourceRegisterInModRM | IA32OpProp_ShortSource | IA32OpProp_ShortTarget | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_TestsCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SetsCCForCompare)),
INSTRUCTION(ADC4RegReg, adc,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x13, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SourceRegisterInModRM | IA32OpProp_IntSource | IA32OpProp_IntTarget | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_TestsCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SetsCCForCompare)),
INSTRUCTION(ADC8RegReg, adc,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX_W, ESCAPE_____, 0x13, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SourceRegisterInModRM | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_TestsCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SetsCCForCompare | IA32OpProp1_LongSource | IA32OpProp1_LongTarget)),
INSTRUCTION(ADC1RegMem, adc,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x12, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_ByteSource | IA32OpProp_ByteTarget | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_TestsCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SourceIsMemRef | IA32OpProp1_SetsCCForCompare)),
INSTRUCTION(ADC2RegMem, adc,
            BINARY(VEX_L___, VEX_vNONE, PREFIX_66, REX__, ESCAPE_____, 0x13, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_ShortSource | IA32OpProp_ShortTarget | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_TestsCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SourceIsMemRef | IA32OpProp1_SetsCCForCompare)),
INSTRUCTION(ADC4RegMem, adc,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x13, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_IntSource | IA32OpProp_IntTarget | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_TestsCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SourceIsMemRef | IA32OpProp1_SetsCCForCompare)),
INSTRUCTION(ADC8RegMem, adc,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX_W, ESCAPE_____, 0x13, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_TestsCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SourceIsMemRef | IA32OpProp1_SetsCCForCompare | IA32OpProp1_LongSource | IA32OpProp1_LongTarget)),
INSTRUCTION(ADC1MemReg, adc,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x10, 0, ModRM_MR__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_ByteSource | IA32OpProp_ByteTarget | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_TestsCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SetsCCForCompare | IA32OpProp1_SupportsLockPrefix)),
INSTRUCTION(ADC2MemReg, adc,
            BINARY(VEX_L___, VEX_vNONE, PREFIX_66, REX__, ESCAPE_____, 0x11, 0, ModRM_MR__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_ShortSource | IA32OpProp_ShortTarget | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_TestsCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SetsCCForCompare | IA32OpProp1_SupportsLockPrefix)),
INSTRUCTION(ADC4MemReg, adc,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x11, 0, ModRM_MR__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_IntSource | IA32OpProp_IntTarget | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_TestsCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SetsCCForCompare | IA32OpProp1_SupportsLockPrefix)),
INSTRUCTION(ADC8MemReg, adc,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX_W, ESCAPE_____, 0x11, 0, ModRM_MR__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_TestsCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SetsCCForCompare | IA32OpProp1_SupportsLockPrefix | IA32OpProp1_LongSource | IA32OpProp1_LongTarget)),
INSTRUCTION(ADD1AccImm1, add,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x04, 0, ModRM_NONE, Immediate_1),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterIgnored | IA32OpProp_ByteTarget | IA32OpProp_ByteImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SetsCCForCompare)),
INSTRUCTION(ADD2AccImm2, add,
            BINARY(VEX_L___, VEX_vNONE, PREFIX_66, REX__, ESCAPE_____, 0x05, 0, ModRM_NONE, Immediate_2),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterIgnored | IA32OpProp_ShortTarget | IA32OpProp_ShortImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SetsCCForCompare)),
INSTRUCTION(ADD4AccImm4, add,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x05, 0, ModRM_NONE, Immediate_4),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterIgnored | IA32OpProp_IntTarget | IA32OpProp_IntImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SetsCCForCompare)),
INSTRUCTION(ADD8AccImm4, add,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX_W, ESCAPE_____, 0x05, 0, ModRM_NONE, Immediate_4),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterIgnored | IA32OpProp_IntImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SetsCCForCompare | IA32OpProp1_LongTarget)),
INSTRUCTION(ADD1RegImm1, add,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x80, 0, ModRM_EXT_, Immediate_1),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterInModRM | IA32OpProp_ByteTarget | IA32OpProp_ByteImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SetsCCForCompare)),
INSTRUCTION(ADD2RegImm2, add,
            BINARY(VEX_L___, VEX_vNONE, PREFIX_66, REX__, ESCAPE_____, 0x81, 0, ModRM_EXT_, Immediate_2),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterInModRM | IA32OpProp_ShortTarget | IA32OpProp_ShortImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SetsCCForCompare)),
INSTRUCTION(ADD2RegImms, add,
            BINARY(VEX_L___, VEX_vNONE, PREFIX_66, REX__, ESCAPE_____, 0x83, 0, ModRM_EXT_, Immediate_S),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterInModRM | IA32OpProp_ShortTarget | IA32OpProp_SignExtendImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SetsCCForCompare)),
INSTRUCTION(ADD4RegImm4, add,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x81, 0, ModRM_EXT_, Immediate_4),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterInModRM | IA32OpProp_IntTarget | IA32OpProp_IntImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SetsCCForCompare)),
INSTRUCTION(ADD8RegImm4, add,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX_W, ESCAPE_____, 0x81, 0, ModRM_EXT_, Immediate_4),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterInModRM | IA32OpProp_IntImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SetsCCForCompare | IA32OpProp1_LongTarget)),
INSTRUCTION(ADD4RegImms, add,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x83, 0, ModRM_EXT_, Immediate_S),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterInModRM | IA32OpProp_IntTarget | IA32OpProp_SignExtendImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SetsCCForCompare)),
INSTRUCTION(ADD8RegImms, add,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX_W, ESCAPE_____, 0x83, 0, ModRM_EXT_, Immediate_S),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterInModRM | IA32OpProp_SignExtendImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SetsCCForCompare | IA32OpProp1_LongTarget)),
INSTRUCTION(ADD1MemImm1, add,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x80, 0, ModRM_EXT_, Immediate_1),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_ByteTarget | IA32OpProp_ByteImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SetsCCForCompare | IA32OpProp1_SupportsLockPrefix)),
INSTRUCTION(ADD2MemImm2, add,
            BINARY(VEX_L___, VEX_vNONE, PREFIX_66, REX__, ESCAPE_____, 0x81, 0, ModRM_EXT_, Immediate_2),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_ShortTarget | IA32OpProp_ShortImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SetsCCForCompare | IA32OpProp1_SupportsLockPrefix)),
INSTRUCTION(ADD2MemImms, add,
            BINARY(VEX_L___, VEX_vNONE, PREFIX_66, REX__, ESCAPE_____, 0x83, 0, ModRM_EXT_, Immediate_S),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_ShortTarget | IA32OpProp_SignExtendImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SetsCCForCompare | IA32OpProp1_SupportsLockPrefix)),
INSTRUCTION(ADD4MemImm4, add,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x81, 0, ModRM_EXT_, Immediate_4),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_IntTarget | IA32OpProp_IntImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SetsCCForCompare | IA32OpProp1_SupportsLockPrefix)),
INSTRUCTION(ADD8MemImm4, add,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX_W, ESCAPE_____, 0x81, 0, ModRM_EXT_, Immediate_4),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_IntImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SetsCCForCompare | IA32OpProp1_SupportsLockPrefix | IA32OpProp1_LongTarget)),
INSTRUCTION(ADD4MemImms, add,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x83, 0, ModRM_EXT_, Immediate_S),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_IntTarget | IA32OpProp_SignExtendImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SetsCCForCompare | IA32OpProp1_SupportsLockPrefix)),
INSTRUCTION(ADD8MemImms, add,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX_W, ESCAPE_____, 0x83, 0, ModRM_EXT_, Immediate_S),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SignExtendImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SetsCCForCompare | IA32OpProp1_SupportsLockPrefix | IA32OpProp1_LongTarget)),
INSTRUCTION(ADD1RegReg, add,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x02, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SourceRegisterInModRM | IA32OpProp_ByteSource | IA32OpProp_ByteTarget | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SetsCCForCompare)),
INSTRUCTION(ADD2RegReg, add,
            BINARY(VEX_L___, VEX_vNONE, PREFIX_66, REX__, ESCAPE_____, 0x03, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SourceRegisterInModRM | IA32OpProp_ShortSource | IA32OpProp_ShortTarget | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SetsCCForCompare)),
INSTRUCTION(ADD4RegReg, add,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x03, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SourceRegisterInModRM | IA32OpProp_IntSource | IA32OpProp_IntTarget | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SetsCCForCompare)),
INSTRUCTION(ADD8RegReg, add,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX_W, ESCAPE_____, 0x03, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SourceRegisterInModRM | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SetsCCForCompare | IA32OpProp1_LongSource | IA32OpProp1_LongTarget)),
INSTRUCTION(ADD1RegMem, add,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x02, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_ByteSource | IA32OpProp_ByteTarget | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SourceIsMemRef | IA32OpProp1_SetsCCForCompare)),
INSTRUCTION(ADD2RegMem, add,
            BINARY(VEX_L___, VEX_vNONE, PREFIX_66, REX__, ESCAPE_____, 0x03, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_ShortSource | IA32OpProp_ShortTarget | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SourceIsMemRef | IA32OpProp1_SetsCCForCompare)),
INSTRUCTION(ADD4RegMem, add,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x03, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_IntSource | IA32OpProp_IntTarget | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SourceIsMemRef | IA32OpProp1_SetsCCForCompare)),
INSTRUCTION(ADD8RegMem, add,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX_W, ESCAPE_____, 0x03, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SourceIsMemRef | IA32OpProp1_SetsCCForCompare | IA32OpProp1_LongSource | IA32OpProp1_LongTarget)),
INSTRUCTION(ADD1MemReg, add,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x00, 0, ModRM_MR__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_ByteSource | IA32OpProp_ByteTarget | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SetsCCForCompare | IA32OpProp1_SupportsLockPrefix)),
INSTRUCTION(ADD2MemReg, add,
            BINARY(VEX_L___, VEX_vNONE, PREFIX_66, REX__, ESCAPE_____, 0x01, 0, ModRM_MR__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_ShortSource | IA32OpProp_ShortTarget | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SetsCCForCompare | IA32OpProp1_SupportsLockPrefix)),
INSTRUCTION(ADD4MemReg, add,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x01, 0, ModRM_MR__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_IntSource | IA32OpProp_IntTarget | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SetsCCForCompare | IA32OpProp1_SupportsLockPrefix)),
INSTRUCTION(ADD8MemReg, add,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX_W, ESCAPE_____, 0x01, 0, ModRM_MR__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SetsCCForCompare | IA32OpProp1_SupportsLockPrefix | IA32OpProp1_LongSource | IA32OpProp1_LongTarget)),
INSTRUCTION(ADDSSRegReg, addss,
            BINARY(VEX_L128, VEX_vReg_, PREFIX_F3, REX__, ESCAPE_0F__, 0x58, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SingleFP | IA32OpProp_SourceRegisterInModRM | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_XMMSource | IA32OpProp1_XMMTarget)),
INSTRUCTION(ADDSSRegMem, addss,
            BINARY(VEX_L128, VEX_vReg_, PREFIX_F3, REX__, ESCAPE_0F__, 0x58, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SingleFP | IA32OpProp_IntSource | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SourceIsMemRef | IA32OpProp1_XMMTarget)),
INSTRUCTION(ADDPSRegReg, addps,
            BINARY(VEX_L128, VEX_vReg_, PREFIX___, REX__, ESCAPE_0F__, 0x58, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SingleFP | IA32OpProp_SourceRegisterInModRM | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_XMMSource | IA32OpProp1_XMMTarget)),
INSTRUCTION(ADDPSRegMem, addps,
            BINARY(VEX_L128, VEX_vReg_, PREFIX___, REX__, ESCAPE_0F__, 0x58, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SingleFP | IA32OpProp_IntSource | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SourceIsMemRef | IA32OpProp1_XMMTarget)),
INSTRUCTION(ADDSDRegReg, addsd,
            BINARY(VEX_L128, VEX_vReg_, PREFIX_F2, REX__, ESCAPE_0F__, 0x58, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_DoubleFP | IA32OpProp_SourceRegisterInModRM | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_XMMSource | IA32OpProp1_XMMTarget)),
INSTRUCTION(ADDSDRegMem, addsd,
            BINARY(VEX_L128, VEX_vReg_, PREFIX_F2, REX__, ESCAPE_0F__, 0x58, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_DoubleFP | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SourceIsMemRef | IA32OpProp1_XMMTarget)),
INSTRUCTION(ADDPDRegReg, addpd,
            BINARY(VEX_L128, VEX_vReg_, PREFIX_66, REX__, ESCAPE_0F__, 0x58, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_DoubleFP | IA32OpProp_SourceRegisterInModRM | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_XMMSource | IA32OpProp1_XMMTarget)),
INSTRUCTION(ADDPDRegMem, addpd,
            BINARY(VEX_L128, VEX_vReg_, PREFIX_66, REX__, ESCAPE_0F__, 0x58, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_DoubleFP | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SourceIsMemRef | IA32OpProp1_XMMTarget)),
INSTRUCTION(LADD1MemReg, lock add,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x00, 0, ModRM_MR__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_ByteSource | IA32OpProp_ByteTarget | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SetsCCForCompare | IA32OpProp1_SupportsLockPrefix | IA32OpProp1_NeedsLockPrefix)),
INSTRUCTION(LADD2MemReg, lock add,
            BINARY(VEX_L___, VEX_vNONE, PREFIX_66, REX__, ESCAPE_____, 0x01, 0, ModRM_MR__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_ShortSource | IA32OpProp_ShortTarget | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SetsCCForCompare | IA32OpProp1_SupportsLockPrefix | IA32OpProp1_NeedsLockPrefix)),
INSTRUCTION(LADD4MemReg, lock add,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x01, 0, ModRM_MR__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_IntSource | IA32OpProp_IntTarget | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SetsCCForCompare | IA32OpProp1_SupportsLockPrefix | IA32OpProp1_NeedsLockPrefix)),
INSTRUCTION(LADD8MemReg, lock add,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX_W, ESCAPE_____, 0x01, 0, ModRM_MR__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SetsCCForCompare | IA32OpProp1_SupportsLockPrefix | IA32OpProp1_LongSource | IA32OpProp1_LongTarget | IA32OpProp1_SupportsLockPrefix | IA32OpProp1_NeedsLockPrefix)),
INSTRUCTION(LXADD1MemReg, lock xadd,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_0F__, 0xc0, 0, ModRM_MR__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_ModifiesSource | IA32OpProp_ByteSource | IA32OpProp_ByteTarget | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SetsCCForCompare | IA32OpProp1_SupportsLockPrefix | IA32OpProp1_NeedsLockPrefix)),
INSTRUCTION(LXADD2MemReg, lock xadd,
            BINARY(VEX_L___, VEX_vNONE, PREFIX_66, REX__, ESCAPE_0F__, 0xc1, 0, ModRM_MR__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_ModifiesSource | IA32OpProp_ShortSource | IA32OpProp_ShortTarget | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SetsCCForCompare | IA32OpProp1_SupportsLockPrefix | IA32OpProp1_NeedsLockPrefix)),
INSTRUCTION(LXADD4MemReg, lock xadd,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_0F__, 0xc1, 0, ModRM_MR__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_ModifiesSource | IA32OpProp_IntSource | IA32OpProp_IntTarget | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SetsCCForCompare | IA32OpProp1_SupportsLockPrefix | IA32OpProp1_NeedsLockPrefix)),
INSTRUCTION(LXADD8MemReg, lock xadd,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX_W, ESCAPE_0F__, 0xc1, 0, ModRM_MR__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_ModifiesSource | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SetsCCForCompare | IA32OpProp1_SupportsLockPrefix | IA32OpProp1_NeedsLockPrefix | IA32OpProp1_LongSource | IA32OpProp1_LongTarget)),
INSTRUCTION(AND1AccImm1, and,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x24, 0, ModRM_NONE, Immediate_1),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterIgnored | IA32OpProp_ByteTarget | IA32OpProp_ByteImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest)),
INSTRUCTION(AND2AccImm2, and,
            BINARY(VEX_L___, VEX_vNONE, PREFIX_66, REX__, ESCAPE_____, 0x25, 0, ModRM_NONE, Immediate_2),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterIgnored | IA32OpProp_ShortTarget | IA32OpProp_ShortImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest)),
INSTRUCTION(AND4AccImm4, and,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x25, 0, ModRM_NONE, Immediate_4),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterIgnored | IA32OpProp_IntTarget | IA32OpProp_IntImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest)),
INSTRUCTION(AND8AccImm4, and,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX_W, ESCAPE_____, 0x25, 0, ModRM_NONE, Immediate_4),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterIgnored | IA32OpProp_IntImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_LongTarget)),
INSTRUCTION(AND1RegImm1, and,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x80, 4, ModRM_EXT_, Immediate_1),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterInModRM | IA32OpProp_ByteTarget | IA32OpProp_ByteImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest)),
INSTRUCTION(AND2RegImm2, and,
            BINARY(VEX_L___, VEX_vNONE, PREFIX_66, REX__, ESCAPE_____, 0x81, 4, ModRM_EXT_, Immediate_2),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterInModRM | IA32OpProp_ShortTarget | IA32OpProp_ShortImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest)),
INSTRUCTION(AND2RegImms, and,
            BINARY(VEX_L___, VEX_vNONE, PREFIX_66, REX__, ESCAPE_____, 0x83, 4, ModRM_EXT_, Immediate_S),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterInModRM | IA32OpProp_ShortTarget | IA32OpProp_SignExtendImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest)),
INSTRUCTION(AND4RegImm4, and,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x81, 4, ModRM_EXT_, Immediate_4),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterInModRM | IA32OpProp_IntTarget | IA32OpProp_IntImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest)),
INSTRUCTION(AND8RegImm4, and,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX_W, ESCAPE_____, 0x81, 4, ModRM_EXT_, Immediate_4),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterInModRM | IA32OpProp_IntImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_LongTarget)),
INSTRUCTION(AND4RegImms, and,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x83, 4, ModRM_EXT_, Immediate_S),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterInModRM | IA32OpProp_IntTarget | IA32OpProp_SignExtendImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest)),
INSTRUCTION(AND8RegImms, and,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX_W, ESCAPE_____, 0x83, 4, ModRM_EXT_, Immediate_S),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterInModRM | IA32OpProp_SignExtendImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_LongTarget)),
INSTRUCTION(AND1MemImm1, and,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x80, 4, ModRM_EXT_, Immediate_1),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_ByteTarget | IA32OpProp_ByteImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SupportsLockPrefix)),
INSTRUCTION(AND2MemImm2, and,
            BINARY(VEX_L___, VEX_vNONE, PREFIX_66, REX__, ESCAPE_____, 0x81, 4, ModRM_EXT_, Immediate_2),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_ShortTarget | IA32OpProp_ShortImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SupportsLockPrefix)),
INSTRUCTION(AND2MemImms, and,
            BINARY(VEX_L___, VEX_vNONE, PREFIX_66, REX__, ESCAPE_____, 0x83, 4, ModRM_EXT_, Immediate_S),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_ShortTarget | IA32OpProp_SignExtendImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SupportsLockPrefix)),
INSTRUCTION(AND4MemImm4, and,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x81, 4, ModRM_EXT_, Immediate_4),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_IntTarget | IA32OpProp_IntImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SupportsLockPrefix)),
INSTRUCTION(AND8MemImm4, and,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX_W, ESCAPE_____, 0x81, 4, ModRM_EXT_, Immediate_4),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_IntImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SupportsLockPrefix | IA32OpProp1_LongTarget)),
INSTRUCTION(AND4MemImms, and,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x83, 4, ModRM_EXT_, Immediate_S),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_IntTarget | IA32OpProp_SignExtendImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SupportsLockPrefix)),
INSTRUCTION(AND8MemImms, and,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX_W, ESCAPE_____, 0x83, 4, ModRM_EXT_, Immediate_S),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SignExtendImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SupportsLockPrefix | IA32OpProp1_LongTarget)),
INSTRUCTION(AND1RegReg, and,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x22, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SourceRegisterInModRM | IA32OpProp_ByteSource | IA32OpProp_ByteTarget | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest)),
INSTRUCTION(AND2RegReg, and,
            BINARY(VEX_L___, VEX_vNONE, PREFIX_66, REX__, ESCAPE_____, 0x23, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SourceRegisterInModRM | IA32OpProp_ShortSource | IA32OpProp_ShortTarget | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest)),
INSTRUCTION(AND4RegReg, and,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x23, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SourceRegisterInModRM | IA32OpProp_IntSource | IA32OpProp_IntTarget | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest)),
INSTRUCTION(AND8RegReg, and,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX_W, ESCAPE_____, 0x23, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SourceRegisterInModRM | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_LongSource | IA32OpProp1_LongTarget)),
INSTRUCTION(AND1RegMem, and,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x22, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_ByteSource | IA32OpProp_ByteTarget | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SourceIsMemRef)),
INSTRUCTION(AND2RegMem, and,
            BINARY(VEX_L___, VEX_vNONE, PREFIX_66, REX__, ESCAPE_____, 0x23, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_ShortSource | IA32OpProp_ShortTarget | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SourceIsMemRef)),
INSTRUCTION(AND4RegMem, and,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x23, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_IntSource | IA32OpProp_IntTarget | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SourceIsMemRef)),
INSTRUCTION(AND8RegMem, and,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX_W, ESCAPE_____, 0x23, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_LongSource | IA32OpProp1_LongTarget | IA32OpProp1_SourceIsMemRef)),
INSTRUCTION(AND1MemReg, and,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x20, 0, ModRM_MR__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_ByteSource | IA32OpProp_ByteTarget | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SupportsLockPrefix)),
INSTRUCTION(AND2MemReg, and,
            BINARY(VEX_L___, VEX_vNONE, PREFIX_66, REX__, ESCAPE_____, 0x21, 0, ModRM_MR__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_ShortSource | IA32OpProp_ShortTarget | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SupportsLockPrefix)),
INSTRUCTION(AND4MemReg, and,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x21, 0, ModRM_MR__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_IntSource | IA32OpProp_IntTarget | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SupportsLockPrefix)),
INSTRUCTION(AND8MemReg, and,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX_W, ESCAPE_____, 0x21, 0, ModRM_MR__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SupportsLockPrefix | IA32OpProp1_LongSource | IA32OpProp1_LongTarget)),
INSTRUCTION(BSF2RegReg, bsf,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_0F__, 0xbc, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_ShortTarget | IA32OpProp_ShortSource | IA32OpProp_SourceRegisterInModRM | IA32OpProp_ModifiesZeroFlag),
            PROPERTY1(0)),
INSTRUCTION(BSF4RegReg, bsf,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_0F__, 0xbc, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SourceRegisterInModRM | IA32OpProp_IntSource | IA32OpProp_IntTarget | IA32OpProp_ModifiesZeroFlag | IA32OpProp_UsesTarget),
            PROPERTY1(0)),
INSTRUCTION(BSF8RegReg, bsf,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX_W, ESCAPE_0F__, 0xbc, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SourceRegisterInModRM | IA32OpProp_ModifiesZeroFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_LongSource | IA32OpProp1_LongTarget)),
INSTRUCTION(BSR4RegReg, bsr,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_0F__, 0xbd, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SourceRegisterInModRM | IA32OpProp_IntSource | IA32OpProp_IntTarget | IA32OpProp_ModifiesZeroFlag | IA32OpProp_UsesTarget),
            PROPERTY1(0)),
INSTRUCTION(BSR8RegReg, bsr,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX_W, ESCAPE_0F__, 0xbd, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SourceRegisterInModRM | IA32OpProp_ModifiesZeroFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_LongSource | IA32OpProp1_LongTarget)),
INSTRUCTION(BSWAP4Reg, bswap,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_0F__, 0xc8, 0, ModRM_NONE, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterInOpcode | IA32OpProp_IntTarget | IA32OpProp_UsesTarget),
            PROPERTY1(0)),
INSTRUCTION(BSWAP8Reg, bswap,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX_W, ESCAPE_0F__, 0xc8, 0, ModRM_NONE, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterInOpcode | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_LongTarget)),
INSTRUCTION(BTS4RegReg, bts,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_0F__, 0xab, 0, ModRM_MR__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterInModRM | IA32OpProp_IntSource | IA32OpProp_IntTarget | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest)),
INSTRUCTION(BTS4MemReg, bts,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_0F__, 0xab, 0, ModRM_MR__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_IntSource | IA32OpProp_IntTarget | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SupportsLockPrefix)),
INSTRUCTION(BT4RegReg, bt,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_0F__, 0xa3, 0, ModRM_MR__, Immediate_0),
            PROPERTY0(IA32OpProp_TargetRegisterInModRM | IA32OpProp_IntSource | IA32OpProp_IntTarget | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest)),
INSTRUCTION(BT8RegReg, bt,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX_W, ESCAPE_0F__, 0xa3, 0, ModRM_MR__, Immediate_0),
            PROPERTY0(IA32OpProp_TargetRegisterInModRM | IA32OpProp_IntSource | IA32OpProp_IntTarget | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest)),
INSTRUCTION(CALLImm4, call,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xe8, 0, ModRM_NONE, Immediate_4),
            PROPERTY0(IA32OpProp_IntImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag),
            PROPERTY1(IA32OpProp1_CallOp)),
INSTRUCTION(CALLREXImm4, call,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xcc, 0, ModRM_NONE, Immediate_0),
            PROPERTY0(IA32OpProp_IntImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag),
            PROPERTY1(IA32OpProp1_CallOp)),
INSTRUCTION(CALLReg, call,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xff, 2, ModRM_MR__, Immediate_0),
            PROPERTY0(IA32OpProp_IntTarget | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_TargetRegisterInModRM),
            PROPERTY1(IA32OpProp1_CallOp)),
INSTRUCTION(CALLREXReg, call,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xcc, 0, ModRM_NONE, Immediate_0),
            PROPERTY0(IA32OpProp_IntTarget | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_TargetRegisterInModRM),
            PROPERTY1(IA32OpProp1_CallOp)),
INSTRUCTION(CALLMem, call,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xff, 2, ModRM_MR__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag),
            PROPERTY1(IA32OpProp1_CallOp | IA32OpProp1_SourceIsMemRef)),
INSTRUCTION(CALLREXMem, call,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xcc, 0, ModRM_NONE, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag),
            PROPERTY1(IA32OpProp1_CallOp | IA32OpProp1_SourceIsMemRef)),
INSTRUCTION(CBWAcc, cbw,
            BINARY(VEX_L___, VEX_vNONE, PREFIX_66, REX__, ESCAPE_____, 0x98, 0, ModRM_NONE, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterIgnored | IA32OpProp_ByteSource | IA32OpProp_ShortTarget | IA32OpProp_UsesTarget),
            PROPERTY1(0)),
INSTRUCTION(CBWEAcc, cbwe,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x98, 0, ModRM_NONE, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterIgnored | IA32OpProp_ShortSource | IA32OpProp_IntTarget | IA32OpProp_UsesTarget),
            PROPERTY1(0)),
INSTRUCTION(CLC, clc,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xf8, 0, ModRM_NONE, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesCarryFlag),
            PROPERTY1(0)),
INSTRUCTION(CLD, cld,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xfc, 0, ModRM_NONE, Immediate_0),
            PROPERTY0(0),
            PROPERTY1(0)),
INSTRUCTION(CMOVA4RegMem, cmova,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_0F__, 0x47, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_IntSource | IA32OpProp_TestsZeroFlag | IA32OpProp_TestsCarryFlag | IA32OpProp_IntTarget),
            PROPERTY1(IA32OpProp1_SourceIsMemRef)),
INSTRUCTION(CMOVA8RegMem, cmova,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX_W, ESCAPE_0F__, 0x47, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_IntSource | IA32OpProp_TestsZeroFlag | IA32OpProp_TestsCarryFlag | IA32OpProp_IntTarget),
            PROPERTY1(IA32OpProp1_SourceIsMemRef)),
INSTRUCTION(CMOVB4RegMem, cmovb,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_0F__, 0x42, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_IntSource | IA32OpProp_TestsCarryFlag | IA32OpProp_IntTarget),
            PROPERTY1(IA32OpProp1_SourceIsMemRef)),
INSTRUCTION(CMOVE4RegMem, cmove,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_0F__, 0x44, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_IntSource | IA32OpProp_TestsZeroFlag | IA32OpProp_IntTarget),
            PROPERTY1(IA32OpProp1_SourceIsMemRef)),
INSTRUCTION(CMOVE8RegMem, cmove,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX_W, ESCAPE_0F__, 0x44, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TestsZeroFlag),
            PROPERTY1(IA32OpProp1_LongSource | IA32OpProp1_LongTarget | IA32OpProp1_SourceIsMemRef)),
INSTRUCTION(CMOVG4RegMem, cmovg,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_0F__, 0x4F, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_IntSource | IA32OpProp_TestsOverflowFlag | IA32OpProp_TestsSignFlag | IA32OpProp_TestsZeroFlag | IA32OpProp_IntTarget),
            PROPERTY1(IA32OpProp1_SourceIsMemRef)),
INSTRUCTION(CMOVGE4RegMem, cmovge,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_0F__, 0x4d, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_IntSource | IA32OpProp_IntTarget | IA32OpProp_TestsOverflowFlag | IA32OpProp_TestsSignFlag),
            PROPERTY1(IA32OpProp1_SourceIsMemRef)),
INSTRUCTION(CMOVGE8RegMem, cmovge,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX_W, ESCAPE_0F__, 0x4d, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TestsOverflowFlag | IA32OpProp_TestsSignFlag),
            PROPERTY1(IA32OpProp1_SourceIsMemRef | IA32OpProp1_LongSource | IA32OpProp1_LongTarget)),
INSTRUCTION(CMOVL4RegMem, cmovl,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_0F__, 0x4C, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_IntSource | IA32OpProp_TestsOverflowFlag | IA32OpProp_TestsSignFlag | IA32OpProp_IntTarget),
            PROPERTY1(IA32OpProp1_SourceIsMemRef)),
INSTRUCTION(CMOVNE4RegMem, cmovne,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_0F__, 0x45, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_IntSource | IA32OpProp_TestsZeroFlag | IA32OpProp_IntTarget),
            PROPERTY1(IA32OpProp1_SourceIsMemRef)),
INSTRUCTION(CMOVNE8RegMem, cmovne,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX_W, ESCAPE_0F__, 0x45, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TestsZeroFlag),
            PROPERTY1(IA32OpProp1_LongSource | IA32OpProp1_LongTarget | IA32OpProp1_SourceIsMemRef)),
INSTRUCTION(CMOVNO4RegMem, cmovno,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_0F__, 0x41, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_IntSource | IA32OpProp_TestsOverflowFlag | IA32OpProp_IntTarget),
            PROPERTY1(IA32OpProp1_SourceIsMemRef)),
INSTRUCTION(CMOVNS4RegMem, cmovns,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_0F__, 0x49, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_IntSource | IA32OpProp_TestsSignFlag | IA32OpProp_IntTarget),
            PROPERTY1(IA32OpProp1_SourceIsMemRef)),
INSTRUCTION(CMOVO4RegMem, cmovo,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_0F__, 0x40, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_IntSource | IA32OpProp_TestsOverflowFlag | IA32OpProp_IntTarget),
            PROPERTY1(IA32OpProp1_SourceIsMemRef)),
INSTRUCTION(CMOVP4RegMem, cmovp,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_0F__, 0x4a, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_IntSource | IA32OpProp_TestsParityFlag | IA32OpProp_IntTarget),
            PROPERTY1(IA32OpProp1_SourceIsMemRef)),
INSTRUCTION(CMOVP8RegMem, cmovp,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX_W, ESCAPE_0F__, 0x4a, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_IntSource | IA32OpProp_TestsParityFlag | IA32OpProp_IntTarget),
            PROPERTY1(IA32OpProp1_SourceIsMemRef)),
INSTRUCTION(CMOVS4RegMem, cmovs,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_0F__, 0x48, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_IntSource | IA32OpProp_TestsSignFlag | IA32OpProp_IntTarget),
            PROPERTY1(IA32OpProp1_SourceIsMemRef)),
INSTRUCTION(CMP1AccImm1, cmp,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x3c, 0, ModRM_NONE, Immediate_1),
            PROPERTY0(IA32OpProp_TargetRegisterIgnored | IA32OpProp_ByteTarget | IA32OpProp_ByteImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_FusableCompare)),
INSTRUCTION(CMP2AccImm2, cmp,
            BINARY(VEX_L___, VEX_vNONE, PREFIX_66, REX__, ESCAPE_____, 0x3d, 0, ModRM_NONE, Immediate_2),
            PROPERTY0(IA32OpProp_TargetRegisterIgnored | IA32OpProp_ShortTarget | IA32OpProp_ShortImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_FusableCompare)),
INSTRUCTION(CMP4AccImm4, cmp,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x3d, 0, ModRM_NONE, Immediate_4),
            PROPERTY0(IA32OpProp_TargetRegisterIgnored | IA32OpProp_IntTarget | IA32OpProp_IntImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_FusableCompare)),
INSTRUCTION(CMP8AccImm4, cmp,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX_W, ESCAPE_____, 0x3d, 0, ModRM_NONE, Immediate_4),
            PROPERTY0(IA32OpProp_TargetRegisterIgnored | IA32OpProp_IntImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_LongTarget | IA32OpProp1_FusableCompare)),
INSTRUCTION(CMP1RegImm1, cmp,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x80, 7, ModRM_EXT_, Immediate_1),
            PROPERTY0(IA32OpProp_TargetRegisterInModRM | IA32OpProp_ByteTarget | IA32OpProp_ByteImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_FusableCompare)),
INSTRUCTION(CMP2RegImm2, cmp,
            BINARY(VEX_L___, VEX_vNONE, PREFIX_66, REX__, ESCAPE_____, 0x81, 7, ModRM_EXT_, Immediate_2),
            PROPERTY0(IA32OpProp_TargetRegisterInModRM | IA32OpProp_ShortTarget | IA32OpProp_ShortImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_FusableCompare)),
INSTRUCTION(CMP2RegImms, cmp,
            BINARY(VEX_L___, VEX_vNONE, PREFIX_66, REX__, ESCAPE_____, 0x83, 7, ModRM_EXT_, Immediate_S),
            PROPERTY0(IA32OpProp_TargetRegisterInModRM | IA32OpProp_ShortTarget | IA32OpProp_SignExtendImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_FusableCompare)),
INSTRUCTION(CMP4RegImm4, cmp,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x81, 7, ModRM_EXT_, Immediate_4),
            PROPERTY0(IA32OpProp_TargetRegisterInModRM | IA32OpProp_IntTarget | IA32OpProp_IntImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_FusableCompare)),
INSTRUCTION(CMP8RegImm4, cmp,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX_W, ESCAPE_____, 0x81, 7, ModRM_EXT_, Immediate_4),
            PROPERTY0(IA32OpProp_TargetRegisterInModRM | IA32OpProp_IntImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_LongTarget | IA32OpProp1_FusableCompare)),
INSTRUCTION(CMP4RegImms, cmp,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x83, 7, ModRM_EXT_, Immediate_S),
            PROPERTY0(IA32OpProp_TargetRegisterInModRM | IA32OpProp_IntTarget | IA32OpProp_SignExtendImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_FusableCompare)),
INSTRUCTION(CMP8RegImms, cmp,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX_W, ESCAPE_____, 0x83, 7, ModRM_EXT_, Immediate_S),
            PROPERTY0(IA32OpProp_TargetRegisterInModRM | IA32OpProp_SignExtendImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_LongTarget | IA32OpProp1_FusableCompare)),
INSTRUCTION(CMP1MemImm1, cmp,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x80, 7, ModRM_EXT_, Immediate_1),
            PROPERTY0(IA32OpProp_ByteTarget | IA32OpProp_ByteImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(0)),
INSTRUCTION(CMP2MemImm2, cmp,
            BINARY(VEX_L___, VEX_vNONE, PREFIX_66, REX__, ESCAPE_____, 0x81, 7, ModRM_EXT_, Immediate_2),
            PROPERTY0(IA32OpProp_ShortTarget | IA32OpProp_ShortImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(0)),
INSTRUCTION(CMP2MemImms, cmp,
            BINARY(VEX_L___, VEX_vNONE, PREFIX_66, REX__, ESCAPE_____, 0x83, 7, ModRM_EXT_, Immediate_S),
            PROPERTY0(IA32OpProp_ShortTarget | IA32OpProp_SignExtendImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(0)),
INSTRUCTION(CMP4MemImm4, cmp,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x81, 7, ModRM_EXT_, Immediate_4),
            PROPERTY0(IA32OpProp_IntTarget | IA32OpProp_IntImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(0)),
INSTRUCTION(CMP8MemImm4, cmp,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX_W, ESCAPE_____, 0x81, 7, ModRM_EXT_, Immediate_4),
            PROPERTY0(IA32OpProp_IntImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_LongTarget)),
INSTRUCTION(CMP4MemImms, cmp,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x83, 7, ModRM_EXT_, Immediate_S),
            PROPERTY0(IA32OpProp_IntTarget | IA32OpProp_SignExtendImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(0)),
INSTRUCTION(CMP8MemImms, cmp,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX_W, ESCAPE_____, 0x83, 7, ModRM_EXT_, Immediate_S),
            PROPERTY0(IA32OpProp_SignExtendImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_LongTarget)),
INSTRUCTION(CMP1RegReg, cmp,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x3a, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_SourceRegisterInModRM | IA32OpProp_ByteSource | IA32OpProp_ByteTarget | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_FusableCompare)),
INSTRUCTION(CMP2RegReg, cmp,
            BINARY(VEX_L___, VEX_vNONE, PREFIX_66, REX__, ESCAPE_____, 0x3b, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_SourceRegisterInModRM | IA32OpProp_ShortSource | IA32OpProp_ShortTarget | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_FusableCompare)),
INSTRUCTION(CMP4RegReg, cmp,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x3b, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_IntSource | IA32OpProp_IntTarget | IA32OpProp_SourceRegisterInModRM | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_FusableCompare)),
INSTRUCTION(CMP8RegReg, cmp,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX_W, ESCAPE_____, 0x3b, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_SourceRegisterInModRM | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_LongSource | IA32OpProp1_LongTarget | IA32OpProp1_FusableCompare)),
INSTRUCTION(CMP1RegMem, cmp,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x3a, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ByteSource | IA32OpProp_ByteTarget | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SourceIsMemRef | IA32OpProp1_FusableCompare)),
INSTRUCTION(CMP2RegMem, cmp,
            BINARY(VEX_L___, VEX_vNONE, PREFIX_66, REX__, ESCAPE_____, 0x3b, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ShortSource | IA32OpProp_ShortTarget | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SourceIsMemRef | IA32OpProp1_FusableCompare)),
INSTRUCTION(CMP4RegMem, cmp,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x3b, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_IntSource | IA32OpProp_IntTarget | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SourceIsMemRef | IA32OpProp1_FusableCompare)),
INSTRUCTION(CMP8RegMem, cmp,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX_W, ESCAPE_____, 0x3b, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_LongSource | IA32OpProp1_LongTarget | IA32OpProp1_SourceIsMemRef | IA32OpProp1_FusableCompare)),
INSTRUCTION(CMP1MemReg, cmp,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x38, 0, ModRM_MR__, Immediate_0),
            PROPERTY0(IA32OpProp_ByteSource | IA32OpProp_ByteTarget | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_FusableCompare)),
INSTRUCTION(CMP2MemReg, cmp,
            BINARY(VEX_L___, VEX_vNONE, PREFIX_66, REX__, ESCAPE_____, 0x39, 0, ModRM_MR__, Immediate_0),
            PROPERTY0(IA32OpProp_ShortSource | IA32OpProp_ShortTarget | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_FusableCompare)),
INSTRUCTION(CMP4MemReg, cmp,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x39, 0, ModRM_MR__, Immediate_0),
            PROPERTY0(IA32OpProp_IntSource | IA32OpProp_IntTarget | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_FusableCompare)),
INSTRUCTION(CMP8MemReg, cmp,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX_W, ESCAPE_____, 0x39, 0, ModRM_MR__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_LongSource | IA32OpProp1_LongTarget | IA32OpProp1_FusableCompare)),
INSTRUCTION(CMPXCHG1MemReg, cmpxchg,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_0F__, 0xb0, 0, ModRM_MR__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_ModifiesSource | IA32OpProp_ByteSource | IA32OpProp_ByteTarget | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SupportsLockPrefix)),
INSTRUCTION(CMPXCHG2MemReg, cmpxchg,
            BINARY(VEX_L___, VEX_vNONE, PREFIX_66, REX__, ESCAPE_0F__, 0xb1, 0, ModRM_MR__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_ModifiesSource | IA32OpProp_ShortSource | IA32OpProp_ShortTarget | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SupportsLockPrefix)),
INSTRUCTION(CMPXCHG4MemReg, cmpxchg,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_0F__, 0xb1, 0, ModRM_MR__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_ModifiesSource | IA32OpProp_IntSource | IA32OpProp_IntTarget | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SupportsLockPrefix)),
INSTRUCTION(CMPXCHG8MemReg, cmpxchg,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX_W, ESCAPE_0F__, 0xb1, 0, ModRM_MR__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_ModifiesSource | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SupportsLockPrefix | IA32OpProp1_LongSource | IA32OpProp1_LongTarget)),
INSTRUCTION(CMPXCHG8BMem, cmpxchg8b,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_0F__, 0xc7, 1, ModRM_EXT_, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_ModifiesSource | IA32OpProp_ModifiesZeroFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SupportsLockPrefix | IA32OpProp1_SourceIsMemRef)),
INSTRUCTION(CMPXCHG16BMem, cmpxchg16b,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX_W, ESCAPE_0F__, 0xc7, 1, ModRM_EXT_, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_ModifiesSource | IA32OpProp_ModifiesZeroFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SupportsLockPrefix | IA32OpProp1_LongSource | IA32OpProp1_LongTarget | IA32OpProp1_SourceIsMemRef)),
INSTRUCTION(LCMPXCHG1MemReg, lock cmpxchg,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_0F__, 0xb0, 0, ModRM_MR__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_ModifiesSource | IA32OpProp_ByteSource | IA32OpProp_ByteTarget | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_NeedsLockPrefix)),
INSTRUCTION(LCMPXCHG2MemReg, lock cmpxchg,
            BINARY(VEX_L___, VEX_vNONE, PREFIX_66, REX__, ESCAPE_0F__, 0xb1, 0, ModRM_MR__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_ModifiesSource | IA32OpProp_ShortSource | IA32OpProp_ShortTarget | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_NeedsLockPrefix)),
INSTRUCTION(LCMPXCHG4MemReg, lock cmpxchg,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_0F__, 0xb1, 0, ModRM_MR__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_ModifiesSource | IA32OpProp_IntSource | IA32OpProp_IntTarget | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_NeedsLockPrefix)),
INSTRUCTION(LCMPXCHG8MemReg, lock cmpxchg,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX_W, ESCAPE_0F__, 0xb1, 0, ModRM_MR__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_ModifiesSource | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_LongSource | IA32OpProp1_LongTarget | IA32OpProp1_NeedsLockPrefix)),
INSTRUCTION(LCMPXCHG8BMem, lock cmpxchg8b,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_0F__, 0xc7, 1, ModRM_EXT_, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_ModifiesSource | IA32OpProp_ModifiesZeroFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_NeedsLockPrefix | IA32OpProp1_SourceIsMemRef)),
INSTRUCTION(LCMPXCHG16BMem, lock cmpxchg16b,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX_W, ESCAPE_0F__, 0xc7, 1, ModRM_EXT_, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_ModifiesSource | IA32OpProp_ModifiesZeroFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_NeedsLockPrefix | IA32OpProp1_LongSource | IA32OpProp1_LongTarget | IA32OpProp1_SourceIsMemRef)),
INSTRUCTION(XALCMPXCHG8MemReg, xacquire lock cmpxchg,
            BINARY(VEX_L___, VEX_vNONE, PREFIX_F2, REX_W, ESCAPE_0F__, 0xb1, 0, ModRM_MR__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_ModifiesSource | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_LongSource | IA32OpProp1_LongTarget | IA32OpProp1_NeedsLockPrefix | IA32OpProp1_NeedsXacquirePrefix)),
INSTRUCTION(XACMPXCHG8MemReg, xacquire lock cmpxchg,
            BINARY(VEX_L___, VEX_vNONE, PREFIX_F2, REX_W, ESCAPE_0F__, 0xb1, 0, ModRM_MR__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_ModifiesSource | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SupportsLockPrefix | IA32OpProp1_LongSource | IA32OpProp1_LongTarget | IA32OpProp1_NeedsXacquirePrefix)),
INSTRUCTION(XALCMPXCHG4MemReg, xacquire lock cmpxchg,
            BINARY(VEX_L___, VEX_vNONE, PREFIX_F2, REX__, ESCAPE_0F__, 0xb1, 0, ModRM_MR__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_ModifiesSource | IA32OpProp_IntSource | IA32OpProp_IntTarget | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_NeedsLockPrefix | IA32OpProp1_NeedsXacquirePrefix)),
INSTRUCTION(XACMPXCHG4MemReg, xacquire lock cmpxchg,
            BINARY(VEX_L___, VEX_vNONE, PREFIX_F2, REX__, ESCAPE_0F__, 0xb1, 0, ModRM_MR__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_ModifiesSource | IA32OpProp_IntSource | IA32OpProp_IntTarget | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SupportsLockPrefix | IA32OpProp1_NeedsXacquirePrefix)),
INSTRUCTION(CMPSB, cmpsb,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xa6, 0, ModRM_NONE, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag),
            PROPERTY1(0)),
INSTRUCTION(CMPSW, cmpsw,
            BINARY(VEX_L___, VEX_vNONE, PREFIX_66, REX__, ESCAPE_____, 0xa7, 0, ModRM_NONE, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag),
            PROPERTY1(0)),
INSTRUCTION(CMPSD, cmpsd,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xa7, 0, ModRM_NONE, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag),
            PROPERTY1(0)),
INSTRUCTION(CMPSQ, cmpsq,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX_W, ESCAPE_____, 0xa7, 0, ModRM_NONE, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag),
            PROPERTY1(0)),
INSTRUCTION(CVTSI2SSRegReg4, cvtsi2ss,
            BINARY(VEX_L128, VEX_vReg_, PREFIX_F3, REX__, ESCAPE_0F__, 0x2a, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SingleFP | IA32OpProp_SourceRegisterInModRM | IA32OpProp_IntSource),
            PROPERTY1(IA32OpProp1_XMMTarget)),
INSTRUCTION(CVTSI2SSRegReg8, cvtsi2ss,
            BINARY(VEX_L128, VEX_vReg_, PREFIX_F3, REX_W, ESCAPE_0F__, 0x2a, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SingleFP | IA32OpProp_SourceRegisterInModRM),
            PROPERTY1(IA32OpProp1_XMMTarget | IA32OpProp1_LongSource)),
INSTRUCTION(CVTSI2SSRegMem, cvtsi2ss,
            BINARY(VEX_L128, VEX_vReg_, PREFIX_F3, REX__, ESCAPE_0F__, 0x2a, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SingleFP | IA32OpProp_IntSource),
            PROPERTY1(IA32OpProp1_SourceIsMemRef | IA32OpProp1_XMMTarget)),
INSTRUCTION(CVTSI2SSRegMem8, cvtsi2ss,
            BINARY(VEX_L128, VEX_vReg_, PREFIX_F3, REX_W, ESCAPE_0F__, 0x2a, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SingleFP),
            PROPERTY1(IA32OpProp1_SourceIsMemRef | IA32OpProp1_XMMTarget | IA32OpProp1_LongSource)),
INSTRUCTION(CVTSI2SDRegReg4, cvtsi2sd,
            BINARY(VEX_L128, VEX_vReg_, PREFIX_F2, REX__, ESCAPE_0F__, 0x2a, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_DoubleFP | IA32OpProp_SourceRegisterInModRM | IA32OpProp_IntSource),
            PROPERTY1(IA32OpProp1_XMMTarget)),
INSTRUCTION(CVTSI2SDRegReg8, cvtsi2sd,
            BINARY(VEX_L128, VEX_vReg_, PREFIX_F2, REX_W, ESCAPE_0F__, 0x2a, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_DoubleFP | IA32OpProp_SourceRegisterInModRM),
            PROPERTY1(IA32OpProp1_XMMTarget | IA32OpProp1_LongSource)),
INSTRUCTION(CVTSI2SDRegMem, cvtsi2sd,
            BINARY(VEX_L128, VEX_vReg_, PREFIX_F2, REX__, ESCAPE_0F__, 0x2a, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_DoubleFP | IA32OpProp_IntSource),
            PROPERTY1(IA32OpProp1_SourceIsMemRef | IA32OpProp1_XMMTarget)),
INSTRUCTION(CVTSI2SDRegMem8, cvtsi2sd,
            BINARY(VEX_L128, VEX_vReg_, PREFIX_F2, REX_W, ESCAPE_0F__, 0x2a, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_DoubleFP),
            PROPERTY1(IA32OpProp1_SourceIsMemRef | IA32OpProp1_XMMTarget | IA32OpProp1_LongSource)),
INSTRUCTION(CVTTSS2SIReg4Reg, cvttss2si,
            BINARY(VEX_L128, VEX_vNONE, PREFIX_F3, REX__, ESCAPE_0F__, 0x2c, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SingleFP | IA32OpProp_SourceRegisterInModRM | IA32OpProp_IntTarget),
            PROPERTY1(IA32OpProp1_XMMSource)),
INSTRUCTION(CVTTSS2SIReg8Reg, cvttss2si,
            BINARY(VEX_L128, VEX_vNONE, PREFIX_F3, REX_W, ESCAPE_0F__, 0x2c, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SingleFP | IA32OpProp_SourceRegisterInModRM),
            PROPERTY1(IA32OpProp1_XMMSource | IA32OpProp1_LongTarget)),
INSTRUCTION(CVTTSS2SIReg4Mem, cvttss2si,
            BINARY(VEX_L128, VEX_vNONE, PREFIX_F3, REX__, ESCAPE_0F__, 0x2c, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SingleFP | IA32OpProp_IntSource | IA32OpProp_IntTarget),
            PROPERTY1(IA32OpProp1_SourceIsMemRef)),
INSTRUCTION(CVTTSS2SIReg8Mem, cvttss2si,
            BINARY(VEX_L128, VEX_vNONE, PREFIX_F3, REX_W, ESCAPE_0F__, 0x2c, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SingleFP | IA32OpProp_IntSource),
            PROPERTY1(IA32OpProp1_SourceIsMemRef | IA32OpProp1_LongTarget)),
INSTRUCTION(CVTTSD2SIReg4Reg, cvttsd2si,
            BINARY(VEX_L128, VEX_vNONE, PREFIX_F2, REX__, ESCAPE_0F__, 0x2c, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_DoubleFP | IA32OpProp_SourceRegisterInModRM | IA32OpProp_IntTarget),
            PROPERTY1(IA32OpProp1_XMMSource)),
INSTRUCTION(CVTTSD2SIReg8Reg, cvttsd2si,
            BINARY(VEX_L128, VEX_vNONE, PREFIX_F2, REX_W, ESCAPE_0F__, 0x2c, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_DoubleFP | IA32OpProp_SourceRegisterInModRM),
            PROPERTY1(IA32OpProp1_XMMSource | IA32OpProp1_LongTarget)),
INSTRUCTION(CVTTSD2SIReg4Mem, cvttsd2si,
            BINARY(VEX_L128, VEX_vNONE, PREFIX_F2, REX__, ESCAPE_0F__, 0x2c, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_DoubleFP | IA32OpProp_IntTarget),
            PROPERTY1(IA32OpProp1_SourceIsMemRef)),
INSTRUCTION(CVTTSD2SIReg8Mem, cvttsd2si,
            BINARY(VEX_L128, VEX_vNONE, PREFIX_F2, REX_W, ESCAPE_0F__, 0x2c, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_DoubleFP),
            PROPERTY1(IA32OpProp1_SourceIsMemRef | IA32OpProp1_LongTarget)),
INSTRUCTION(CVTSS2SDRegReg, cvtss2sd,
            BINARY(VEX_L128, VEX_vReg_, PREFIX_F3, REX__, ESCAPE_0F__, 0x5a, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SingleFP | IA32OpProp_SourceRegisterInModRM),
            PROPERTY1(IA32OpProp1_XMMSource | IA32OpProp1_XMMTarget)),
INSTRUCTION(CVTSS2SDRegMem, cvtss2sd,
            BINARY(VEX_L128, VEX_vReg_, PREFIX_F3, REX__, ESCAPE_0F__, 0x5a, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SingleFP | IA32OpProp_IntSource),
            PROPERTY1(IA32OpProp1_SourceIsMemRef | IA32OpProp1_XMMTarget)),
INSTRUCTION(CVTSD2SSRegReg, cvtsd2ss,
            BINARY(VEX_L128, VEX_vReg_, PREFIX_F2, REX__, ESCAPE_0F__, 0x5a, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_DoubleFP | IA32OpProp_SourceRegisterInModRM),
            PROPERTY1(IA32OpProp1_XMMSource | IA32OpProp1_XMMTarget)),
INSTRUCTION(CVTSD2SSRegMem, cvtsd2ss,
            BINARY(VEX_L128, VEX_vReg_, PREFIX_F2, REX__, ESCAPE_0F__, 0x5a, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_DoubleFP),
            PROPERTY1(IA32OpProp1_SourceIsMemRef | IA32OpProp1_XMMTarget)),
INSTRUCTION(CWDAcc, cwd,
            BINARY(VEX_L___, VEX_vNONE, PREFIX_66, REX__, ESCAPE_____, 0x99, 0, ModRM_NONE, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterIgnored | IA32OpProp_IntTarget | IA32OpProp_ShortSource),
            PROPERTY1(0)),
INSTRUCTION(CDQAcc, cdq,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x99, 0, ModRM_NONE, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterIgnored | IA32OpProp_IntSource),
            PROPERTY1(0)),
INSTRUCTION(CQOAcc, cqo,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX_W, ESCAPE_____, 0x99, 0, ModRM_NONE, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterIgnored),
            PROPERTY1(IA32OpProp1_LongSource)),
INSTRUCTION(DEC1Reg, dec,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xfe, 1, ModRM_EXT_, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterInModRM | IA32OpProp_ByteTarget | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SetsCCForCompare)),
#ifdef TR_TARGET_64BIT
INSTRUCTION(DEC2Reg, dec,
            BINARY(VEX_L___, VEX_vNONE, PREFIX_66, REX__, ESCAPE_____, 0xff, 1, ModRM_EXT_, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterInModRM | IA32OpProp_ShortTarget | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SetsCCForCompare)),
INSTRUCTION(DEC4Reg, dec,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xff, 1, ModRM_EXT_, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterInModRM | IA32OpProp_IntTarget | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SetsCCForCompare)),
#else
INSTRUCTION(DEC2Reg, dec,
            BINARY(VEX_L___, VEX_vNONE, PREFIX_66, REX__, ESCAPE_____, 0x48, 0, ModRM_NONE, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterInOpcode | IA32OpProp_ShortTarget | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SetsCCForCompare)),
INSTRUCTION(DEC4Reg, dec,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x48, 0, ModRM_NONE, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterInOpcode | IA32OpProp_IntTarget | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SetsCCForCompare)),
#endif
INSTRUCTION(DEC8Reg, dec,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX_W, ESCAPE_____, 0xff, 1, ModRM_EXT_, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterInModRM | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SetsCCForCompare | IA32OpProp1_LongTarget)),
INSTRUCTION(DEC1Mem, dec,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xfe, 1, ModRM_EXT_, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_ByteTarget | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SetsCCForCompare | IA32OpProp1_SourceIsMemRef | IA32OpProp1_SupportsLockPrefix)),
INSTRUCTION(DEC2Mem, dec,
            BINARY(VEX_L___, VEX_vNONE, PREFIX_66, REX__, ESCAPE_____, 0xff, 1, ModRM_EXT_, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_ShortTarget | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SetsCCForCompare | IA32OpProp1_SourceIsMemRef | IA32OpProp1_SupportsLockPrefix)),
INSTRUCTION(DEC4Mem, dec,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xff, 1, ModRM_EXT_, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_IntTarget | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SetsCCForCompare | IA32OpProp1_SourceIsMemRef | IA32OpProp1_SupportsLockPrefix)),
INSTRUCTION(DEC8Mem, dec,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX_W, ESCAPE_____, 0xff, 1, ModRM_EXT_, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SetsCCForCompare | IA32OpProp1_SupportsLockPrefix | IA32OpProp1_LongTarget | IA32OpProp1_SourceIsMemRef)),
INSTRUCTION(FABSReg, fabs,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xd9, X87_________________(0xe1)),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SingleFP | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SourceRegIsImplicit)),
INSTRUCTION(DABSReg, fabs,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xd9, X87_________________(0xe1)),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_DoubleFP | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SourceRegIsImplicit)),
INSTRUCTION(FSQRTReg, fsqrt,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xd9, X87_________________(0xfa)),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SingleFP | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SourceRegIsImplicit)),
INSTRUCTION(DSQRTReg, fsqrt,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xd9, X87_________________(0xfa)),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_DoubleFP | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SourceRegIsImplicit)),
INSTRUCTION(FADDRegReg, fadd,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xd8, X87_________________(0xc0)),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_UsesTarget | IA32OpProp_SingleFP | IA32OpProp_HasPopInstruction),
            PROPERTY1(0)),
INSTRUCTION(DADDRegReg, fadd,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xd8, X87_________________(0xc0)),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_DoubleFP | IA32OpProp_UsesTarget | IA32OpProp_HasPopInstruction),
            PROPERTY1(0)),
INSTRUCTION(FADDPReg, faddp,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xde, X87_________________(0xc0)),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SingleFP | IA32OpProp_IsPopInstruction | IA32OpProp_UsesTarget),
            PROPERTY1(0)),
INSTRUCTION(FADDRegMem, fadd,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xd8, X87_________________(0x00)),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SingleFP | IA32OpProp_IntSource | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SourceIsMemRef | IA32OpProp1_TargetRegIsImplicit)),
INSTRUCTION(DADDRegMem, fadd,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xdc, X87_________________(0x00)),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_DoubleFP | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SourceIsMemRef | IA32OpProp1_TargetRegIsImplicit)),
INSTRUCTION(FIADDRegMem, fiadd,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xda, X87_________________(0x00)),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SingleFP | IA32OpProp_IntSource | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SourceIsMemRef | IA32OpProp1_TargetRegIsImplicit)),
INSTRUCTION(DIADDRegMem, fiadd,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xda, X87_________________(0x00)),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_DoubleFP | IA32OpProp_IntSource | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SourceIsMemRef | IA32OpProp1_TargetRegIsImplicit)),
INSTRUCTION(FSADDRegMem, fiadd,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xde, X87_________________(0x00)),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SingleFP | IA32OpProp_ShortSource | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SourceIsMemRef | IA32OpProp1_TargetRegIsImplicit)),
INSTRUCTION(DSADDRegMem, fiadd,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xde, X87_________________(0x00)),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_DoubleFP | IA32OpProp_ShortSource | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SourceIsMemRef | IA32OpProp1_TargetRegIsImplicit)),
INSTRUCTION(FCHSReg, fchs,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xd9, X87_________________(0xe0)),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SingleFP | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SourceRegIsImplicit)),
INSTRUCTION(DCHSReg, fchs,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xd9, X87_________________(0xe0)),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_DoubleFP | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SourceRegIsImplicit)),
INSTRUCTION(FDIVRegReg, fdiv,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xd8, X87_________________(0xf0)),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SingleFP | IA32OpProp_UsesTarget | IA32OpProp_HasDirectionBit | IA32OpProp_HasPopInstruction),
            PROPERTY1(0)),
INSTRUCTION(DDIVRegReg, fdiv,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xd8, X87_________________(0xf0)),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_DoubleFP | IA32OpProp_UsesTarget | IA32OpProp_HasDirectionBit | IA32OpProp_HasPopInstruction),
            PROPERTY1(0)),
INSTRUCTION(FDIVRegMem, fdiv,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xd8, X87_________________(0x30)),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SingleFP | IA32OpProp_IntSource | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SourceIsMemRef | IA32OpProp1_TargetRegIsImplicit)),
INSTRUCTION(DDIVRegMem, fdiv,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xdc, X87_________________(0x30)),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_DoubleFP | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SourceIsMemRef | IA32OpProp1_TargetRegIsImplicit)),
INSTRUCTION(FDIVPReg, fdivp,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xde, X87_________________(0xf8)),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_IsPopInstruction | IA32OpProp_SingleFP | IA32OpProp_UsesTarget),
            PROPERTY1(0)),
INSTRUCTION(FIDIVRegMem, fidiv,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xda, X87_________________(0x30)),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SingleFP | IA32OpProp_IntSource | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SourceIsMemRef | IA32OpProp1_TargetRegIsImplicit)),
INSTRUCTION(DIDIVRegMem, fidiv,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xda, X87_________________(0x30)),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_DoubleFP | IA32OpProp_IntSource | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SourceIsMemRef | IA32OpProp1_TargetRegIsImplicit)),
INSTRUCTION(FSDIVRegMem, fidiv,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xde, X87_________________(0x30)),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SingleFP | IA32OpProp_ShortSource | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SourceIsMemRef | IA32OpProp1_TargetRegIsImplicit)),
INSTRUCTION(DSDIVRegMem, fidiv,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xde, X87_________________(0x30)),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_DoubleFP | IA32OpProp_ShortSource | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SourceIsMemRef | IA32OpProp1_TargetRegIsImplicit)),
INSTRUCTION(FDIVRRegReg, fdivr,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xd8, X87_________________(0xf0)),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SingleFP | IA32OpProp_UsesTarget | IA32OpProp_HasPopInstruction | IA32OpProp_HasDirectionBit | IA32OpProp_SourceOpTarget),
            PROPERTY1(0)),
INSTRUCTION(DDIVRRegReg, fdivr,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xd8, X87_________________(0xf0)),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_DoubleFP | IA32OpProp_UsesTarget | IA32OpProp_HasPopInstruction | IA32OpProp_HasDirectionBit | IA32OpProp_SourceOpTarget),
            PROPERTY1(0)),
INSTRUCTION(FDIVRRegMem, fdivr,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xd8, X87_________________(0x38)),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SingleFP | IA32OpProp_IntSource | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SourceIsMemRef | IA32OpProp1_TargetRegIsImplicit)),
INSTRUCTION(DDIVRRegMem, fdivr,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xdc, X87_________________(0x38)),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_DoubleFP | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SourceIsMemRef | IA32OpProp1_TargetRegIsImplicit)),
INSTRUCTION(FDIVRPReg, fdivrp,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xde, X87_________________(0xf0)),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_IsPopInstruction | IA32OpProp_SingleFP | IA32OpProp_UsesTarget),
            PROPERTY1(0)),
INSTRUCTION(FIDIVRRegMem, fidivr,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xda, X87_________________(0x38)),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SingleFP | IA32OpProp_IntSource | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SourceIsMemRef | IA32OpProp1_TargetRegIsImplicit)),
INSTRUCTION(DIDIVRRegMem, fidivr,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xda, X87_________________(0x38)),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_DoubleFP | IA32OpProp_IntSource | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SourceIsMemRef | IA32OpProp1_TargetRegIsImplicit)),
INSTRUCTION(FSDIVRRegMem, fidivr,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xde, X87_________________(0x38)),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SingleFP | IA32OpProp_ShortSource | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SourceIsMemRef | IA32OpProp1_TargetRegIsImplicit)),
INSTRUCTION(DSDIVRRegMem, fidivr,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xde, X87_________________(0x38)),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_DoubleFP | IA32OpProp_ShortSource | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SourceIsMemRef | IA32OpProp1_TargetRegIsImplicit)),
INSTRUCTION(FILDRegMem, fild,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xdb, X87_________________(0x00)),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SingleFP | IA32OpProp_IntSource),
            PROPERTY1(IA32OpProp1_SourceIsMemRef | IA32OpProp1_TargetRegIsImplicit)),
INSTRUCTION(DILDRegMem, fild,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xdb, X87_________________(0x00)),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_DoubleFP | IA32OpProp_IntSource),
            PROPERTY1(IA32OpProp1_SourceIsMemRef | IA32OpProp1_TargetRegIsImplicit)),
INSTRUCTION(FLLDRegMem, fild,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xdf, X87_________________(0x28)),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SingleFP),
            PROPERTY1(IA32OpProp1_SourceIsMemRef | IA32OpProp1_TargetRegIsImplicit)),
INSTRUCTION(DLLDRegMem, fild,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xdf, X87_________________(0x28)),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_DoubleFP),
            PROPERTY1(IA32OpProp1_SourceIsMemRef | IA32OpProp1_TargetRegIsImplicit)),
INSTRUCTION(FSLDRegMem, fild,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xdf, X87_________________(0x00)),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SingleFP | IA32OpProp_ShortSource),
            PROPERTY1(IA32OpProp1_SourceIsMemRef | IA32OpProp1_TargetRegIsImplicit)),
INSTRUCTION(DSLDRegMem, fild,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xdf, X87_________________(0x00)),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_DoubleFP | IA32OpProp_ShortSource),
            PROPERTY1(IA32OpProp1_SourceIsMemRef | IA32OpProp1_TargetRegIsImplicit)),
INSTRUCTION(FISTMemReg, fist,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xdb, X87_________________(0x10)),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SingleFP | IA32OpProp_IntTarget),
            PROPERTY1(IA32OpProp1_SourceRegIsImplicit)),
INSTRUCTION(DISTMemReg, fist,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xdb, X87_________________(0x10)),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_DoubleFP | IA32OpProp_IntTarget),
            PROPERTY1(IA32OpProp1_SourceRegIsImplicit)),
INSTRUCTION(FISTPMem, fistp,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xdb, X87_________________(0x18)),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_IsPopInstruction | IA32OpProp_SingleFP | IA32OpProp_IntTarget),
            PROPERTY1(IA32OpProp1_SourceIsMemRef)),
INSTRUCTION(DISTPMem, fistp,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xdb, X87_________________(0x18)),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_IsPopInstruction | IA32OpProp_DoubleFP | IA32OpProp_IntTarget),
            PROPERTY1(IA32OpProp1_SourceIsMemRef)),
INSTRUCTION(FLSTPMem, flstp,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xdf, X87_________________(0x38)),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_IsPopInstruction | IA32OpProp_SingleFP),
            PROPERTY1(IA32OpProp1_SourceIsMemRef)),
INSTRUCTION(DLSTPMem, flstp,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xdf, X87_________________(0x38)),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_IsPopInstruction | IA32OpProp_DoubleFP),
            PROPERTY1(IA32OpProp1_SourceIsMemRef)),
INSTRUCTION(FSSTMemReg, fist,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xdf, X87_________________(0x10)),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SingleFP | IA32OpProp_ShortTarget),
            PROPERTY1(IA32OpProp1_SourceRegIsImplicit)),
INSTRUCTION(DSSTMemReg, fist,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xdf, X87_________________(0x10)),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_DoubleFP | IA32OpProp_ShortTarget),
            PROPERTY1(IA32OpProp1_SourceRegIsImplicit)),
INSTRUCTION(FSSTPMem, fistp,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xdf, X87_________________(0x18)),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_IsPopInstruction | IA32OpProp_SingleFP | IA32OpProp_ShortTarget),
            PROPERTY1(IA32OpProp1_SourceIsMemRef)),
INSTRUCTION(DSSTPMem, fistp,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xdf, X87_________________(0x18)),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_IsPopInstruction | IA32OpProp_DoubleFP | IA32OpProp_ShortTarget),
            PROPERTY1(IA32OpProp1_SourceIsMemRef)),
INSTRUCTION(FLDLN2, fldln2,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xd9, X87_________________(0xed)),
            PROPERTY0(0),
            PROPERTY1(0)),
INSTRUCTION(FLDRegReg, fld,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xd9, X87_________________(0xc0)),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SingleFP),
            PROPERTY1(IA32OpProp1_TargetRegIsImplicit)),
INSTRUCTION(DLDRegReg, fld,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xd9, X87_________________(0xc0)),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_DoubleFP),
            PROPERTY1(IA32OpProp1_TargetRegIsImplicit)),
INSTRUCTION(FLDRegMem, fld,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xd9, X87_________________(0x00)),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SingleFP | IA32OpProp_IntSource),
            PROPERTY1(IA32OpProp1_SourceIsMemRef | IA32OpProp1_TargetRegIsImplicit)),
INSTRUCTION(DLDRegMem, fld,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xdd, X87_________________(0x00)),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_DoubleFP),
            PROPERTY1(IA32OpProp1_SourceIsMemRef | IA32OpProp1_TargetRegIsImplicit)),
INSTRUCTION(FLD0Reg, fldz,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xd9, X87_________________(0xee)),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SingleFP),
            PROPERTY1(IA32OpProp1_TargetRegIsImplicit)),
INSTRUCTION(DLD0Reg, fldz,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xd9, X87_________________(0xee)),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_DoubleFP),
            PROPERTY1(IA32OpProp1_TargetRegIsImplicit)),
INSTRUCTION(FLD1Reg, fld1,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xd9, X87_________________(0xe8)),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SingleFP),
            PROPERTY1(IA32OpProp1_TargetRegIsImplicit)),
INSTRUCTION(DLD1Reg, fld1,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xd9, X87_________________(0xe8)),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_DoubleFP),
            PROPERTY1(IA32OpProp1_TargetRegIsImplicit)),
INSTRUCTION(FLDMem, fld,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xd9, X87_________________(0x00)),
            PROPERTY0(IA32OpProp_UsesTarget | IA32OpProp_SingleFP | IA32OpProp_IntTarget),
            PROPERTY1(0)),
INSTRUCTION(DLDMem, fld,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xdd, X87_________________(0x00)),
            PROPERTY0(IA32OpProp_UsesTarget | IA32OpProp_DoubleFP),
            PROPERTY1(0)),
INSTRUCTION(LDCWMem, fldcw,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xd9, X87_________________(0x28)),
            PROPERTY0(IA32OpProp_ShortTarget),
            PROPERTY1(0)),
INSTRUCTION(FMULRegReg, fmul,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xd8, X87_________________(0xc8)),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SingleFP | IA32OpProp_UsesTarget | IA32OpProp_HasPopInstruction),
            PROPERTY1(0)),
INSTRUCTION(DMULRegReg, fmul,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xd8, X87_________________(0xc8)),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_DoubleFP | IA32OpProp_UsesTarget | IA32OpProp_HasPopInstruction),
            PROPERTY1(0)),
INSTRUCTION(FMULPReg, fmulp,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xde, X87_________________(0xc8)),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_IsPopInstruction | IA32OpProp_SingleFP | IA32OpProp_UsesTarget),
            PROPERTY1(0)),
INSTRUCTION(FMULRegMem, fmul,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xd8, X87_________________(0x08)),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SingleFP | IA32OpProp_IntSource | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SourceIsMemRef | IA32OpProp1_TargetRegIsImplicit)),
INSTRUCTION(DMULRegMem, fmul,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xdc, X87_________________(0x08)),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_DoubleFP | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SourceIsMemRef | IA32OpProp1_TargetRegIsImplicit)),
INSTRUCTION(FIMULRegMem, fimul,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xda, X87_________________(0x08)),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SingleFP | IA32OpProp_IntSource | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SourceIsMemRef | IA32OpProp1_TargetRegIsImplicit)),
INSTRUCTION(DIMULRegMem, fimul,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xda, X87_________________(0x08)),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_DoubleFP | IA32OpProp_IntSource | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SourceIsMemRef | IA32OpProp1_TargetRegIsImplicit)),
INSTRUCTION(FSMULRegMem, fimul,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xde, X87_________________(0x08)),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SingleFP | IA32OpProp_ShortSource | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SourceIsMemRef | IA32OpProp1_TargetRegIsImplicit)),
INSTRUCTION(DSMULRegMem, fimul,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xde, X87_________________(0x08)),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_DoubleFP | IA32OpProp_ShortSource | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SourceIsMemRef | IA32OpProp1_TargetRegIsImplicit)),
INSTRUCTION(FNCLEX, fnclex,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xdb, X87_________________(0xe2)),
            PROPERTY0(0),
            PROPERTY1(0)),
INSTRUCTION(FPREMRegReg, fprem,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xd9, X87_________________(0xf8)),
            PROPERTY0(0),
            PROPERTY1(IA32OpProp1_SourceRegIsImplicit | IA32OpProp1_TargetRegIsImplicit)),
INSTRUCTION(FSCALERegReg, fscale,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xd9, X87_________________(0xfd)),
            PROPERTY0(0),
            PROPERTY1(IA32OpProp1_SourceRegIsImplicit | IA32OpProp1_TargetRegIsImplicit)),
INSTRUCTION(FSTMemReg, fst,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xd9, X87_________________(0x10)),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SingleFP | IA32OpProp_IntTarget),
            PROPERTY1(IA32OpProp1_SourceRegIsImplicit)),
INSTRUCTION(DSTMemReg, fst,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xdd, X87_________________(0x10)),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_DoubleFP),
            PROPERTY1(IA32OpProp1_SourceRegIsImplicit)),
INSTRUCTION(FSTRegReg, fst,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xdd, X87_________________(0xd0)),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SingleFP | IA32OpProp_HasPopInstruction),
            PROPERTY1(IA32OpProp1_SourceRegIsImplicit)),
INSTRUCTION(DSTRegReg, fst,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xdd, X87_________________(0xd0)),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_DoubleFP | IA32OpProp_HasPopInstruction),
            PROPERTY1(IA32OpProp1_SourceRegIsImplicit)),
INSTRUCTION(FSTPMemReg, fstp,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xd9, X87_________________(0x18)),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_IsPopInstruction | IA32OpProp_SingleFP | IA32OpProp_IntTarget),
            PROPERTY1(IA32OpProp1_SourceRegIsImplicit)),
INSTRUCTION(DSTPMemReg, fstp,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xdd, X87_________________(0x18)),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_IsPopInstruction | IA32OpProp_DoubleFP),
            PROPERTY1(IA32OpProp1_SourceRegIsImplicit)),
INSTRUCTION(FSTPReg, fstp,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xdd, X87_________________(0xd8)),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_IsPopInstruction | IA32OpProp_SingleFP),
            PROPERTY1(IA32OpProp1_SourceRegIsImplicit)),
INSTRUCTION(DSTPReg, fstp,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xdd, X87_________________(0xd8)),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_IsPopInstruction | IA32OpProp_DoubleFP),
            PROPERTY1(IA32OpProp1_SourceRegIsImplicit)),
INSTRUCTION(STCWMem, fnstcw,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xd9, X87_________________(0x38)),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_ShortTarget),
            PROPERTY1(0)),
INSTRUCTION(STSWMem, fnstsw,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xdd, X87_________________(0x38)),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_ShortTarget),
            PROPERTY1(0)),
INSTRUCTION(STSWAcc, fnstsw,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xdf, X87_________________(0xe0)),
            PROPERTY0(IA32OpProp_ShortTarget | IA32OpProp_TargetRegisterIgnored),
            PROPERTY1(0)),
INSTRUCTION(FSUBRegReg, fsub,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xd8, X87_________________(0xe0)),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SingleFP | IA32OpProp_UsesTarget | IA32OpProp_HasDirectionBit | IA32OpProp_HasPopInstruction),
            PROPERTY1(0)),
INSTRUCTION(DSUBRegReg, fsub,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xd8, X87_________________(0xe0)),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_DoubleFP | IA32OpProp_UsesTarget | IA32OpProp_HasDirectionBit | IA32OpProp_HasPopInstruction),
            PROPERTY1(0)),
INSTRUCTION(FSUBRegMem, fsub,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xd8, X87_________________(0x20)),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SingleFP | IA32OpProp_IntSource | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SourceIsMemRef | IA32OpProp1_TargetRegIsImplicit)),
INSTRUCTION(DSUBRegMem, fsub,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xdc, X87_________________(0x20)),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_DoubleFP | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SourceIsMemRef | IA32OpProp1_TargetRegIsImplicit)),
INSTRUCTION(FSUBPReg, fsubp,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xde, X87_________________(0xe8)),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_IsPopInstruction | IA32OpProp_SingleFP | IA32OpProp_UsesTarget),
            PROPERTY1(0)),
INSTRUCTION(FISUBRegMem, fisub,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xda, X87_________________(0x20)),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SingleFP | IA32OpProp_IntSource | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SourceIsMemRef | IA32OpProp1_TargetRegIsImplicit)),
INSTRUCTION(DISUBRegMem, fisub,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xda, X87_________________(0x20)),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_DoubleFP | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SourceIsMemRef | IA32OpProp1_TargetRegIsImplicit)),
INSTRUCTION(FSSUBRegMem, fisub,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xde, X87_________________(0x20)),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SingleFP | IA32OpProp_ShortSource | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SourceIsMemRef | IA32OpProp1_TargetRegIsImplicit)),
INSTRUCTION(DSSUBRegMem, fisub,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xde, X87_________________(0x20)),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_DoubleFP | IA32OpProp_ShortSource | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SourceIsMemRef | IA32OpProp1_TargetRegIsImplicit)),
INSTRUCTION(FSUBRRegReg, fsubr,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xd8, X87_________________(0xe0)),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SingleFP | IA32OpProp_UsesTarget | IA32OpProp_HasPopInstruction | IA32OpProp_HasDirectionBit | IA32OpProp_SourceOpTarget),
            PROPERTY1(0)),
INSTRUCTION(DSUBRRegReg, fsubr,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xd8, X87_________________(0xe0)),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_DoubleFP | IA32OpProp_UsesTarget | IA32OpProp_HasPopInstruction | IA32OpProp_HasDirectionBit | IA32OpProp_SourceOpTarget),
            PROPERTY1(0)),
INSTRUCTION(FSUBRRegMem, fsubr,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xd8, X87_________________(0x28)),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SingleFP | IA32OpProp_IntSource | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SourceIsMemRef | IA32OpProp1_TargetRegIsImplicit)),
INSTRUCTION(DSUBRRegMem, fsubr,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xdc, X87_________________(0x28)),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_DoubleFP | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SourceIsMemRef | IA32OpProp1_TargetRegIsImplicit)),
INSTRUCTION(FSUBRPReg, fsubrp,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xde, X87_________________(0xe0)),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SingleFP | IA32OpProp_IsPopInstruction | IA32OpProp_UsesTarget),
            PROPERTY1(0)),
INSTRUCTION(FISUBRRegMem, fisubr,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xda, X87_________________(0x28)),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SingleFP | IA32OpProp_IntSource | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SourceIsMemRef | IA32OpProp1_TargetRegIsImplicit)),
INSTRUCTION(DISUBRRegMem, fisubr,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xda, X87_________________(0x28)),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_DoubleFP | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SourceIsMemRef | IA32OpProp1_TargetRegIsImplicit)),
INSTRUCTION(FSSUBRRegMem, fisubr,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xde, X87_________________(0x28)),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SingleFP | IA32OpProp_ShortSource | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SourceIsMemRef | IA32OpProp1_TargetRegIsImplicit)),
INSTRUCTION(DSSUBRRegMem, fisubr,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xde, X87_________________(0x28)),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_DoubleFP | IA32OpProp_ShortSource | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SourceIsMemRef | IA32OpProp1_TargetRegIsImplicit)),
INSTRUCTION(FTSTReg, ftst,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xd9, X87_________________(0xe4)),
            PROPERTY0(0),
            PROPERTY1(IA32OpProp1_TargetRegIsImplicit)),
INSTRUCTION(FCOMRegReg, fcom,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xd8, X87_________________(0xd0)),
            PROPERTY0(IA32OpProp_HasPopInstruction | IA32OpProp_SingleFP | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_TargetRegIsImplicit)),
INSTRUCTION(DCOMRegReg, fcom,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xd8, X87_________________(0xd0)),
            PROPERTY0(IA32OpProp_HasPopInstruction | IA32OpProp_DoubleFP | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_TargetRegIsImplicit)),
INSTRUCTION(FCOMRegMem, fcom,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xd8, X87_________________(0x10)),
            PROPERTY0(IA32OpProp_HasPopInstruction | IA32OpProp_SingleFP | IA32OpProp_IntSource | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SourceIsMemRef | IA32OpProp1_TargetRegIsImplicit)),
INSTRUCTION(DCOMRegMem, fcom,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xdc, X87_________________(0x10)),
            PROPERTY0(IA32OpProp_HasPopInstruction | IA32OpProp_DoubleFP | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SourceIsMemRef | IA32OpProp1_TargetRegIsImplicit)),
INSTRUCTION(FCOMPReg, fcomp,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xd8, X87_________________(0xd8)),
            PROPERTY0(IA32OpProp_HasPopInstruction | IA32OpProp_IsPopInstruction | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_TargetRegIsImplicit)),
INSTRUCTION(FCOMPMem, fcomp,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xd8, X87_________________(0x18)),
            PROPERTY0(IA32OpProp_IntSource | IA32OpProp_SingleFP),
            PROPERTY1(IA32OpProp1_TargetRegIsImplicit)),
INSTRUCTION(DCOMPMem, fcomp,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xdc, X87_________________(0x18)),
            PROPERTY0(IA32OpProp_DoubleFP),
            PROPERTY1(IA32OpProp1_TargetRegIsImplicit)),
INSTRUCTION(FCOMPP, fcompp,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xde, X87_________________(0xd9)),
            PROPERTY0(0),
            PROPERTY1(IA32OpProp1_SourceRegIsImplicit | IA32OpProp1_TargetRegIsImplicit)),
INSTRUCTION(FCOMIRegReg, fcomi,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xdb, X87_________________(0xf0)),
            PROPERTY0(IA32OpProp_HasPopInstruction | IA32OpProp_SingleFP | IA32OpProp_UsesTarget),
            PROPERTY1(0)),
INSTRUCTION(DCOMIRegReg, fcomi,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xdb, X87_________________(0xf0)),
            PROPERTY0(IA32OpProp_HasPopInstruction | IA32OpProp_DoubleFP | IA32OpProp_UsesTarget),
            PROPERTY1(0)),
INSTRUCTION(FCOMIPReg, fcomip,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xdf, X87_________________(0xf0)),
            PROPERTY0(IA32OpProp_IsPopInstruction | IA32OpProp_UsesTarget | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag),
            PROPERTY1(0)),
INSTRUCTION(FYL2X, fyl2x,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xd9, X87_________________(0xf1)),
            PROPERTY0(0),
            PROPERTY1(0)),
INSTRUCTION(UCOMISSRegReg, ucomiss,
            BINARY(VEX_L128, VEX_vNONE, PREFIX___, REX__, ESCAPE_0F__, 0x2e, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_SourceRegisterInModRM | IA32OpProp_SingleFP | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_XMMSource | IA32OpProp1_XMMTarget)),
INSTRUCTION(UCOMISSRegMem, ucomiss,
            BINARY(VEX_L128, VEX_vNONE, PREFIX___, REX__, ESCAPE_0F__, 0x2e, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_SingleFP | IA32OpProp_IntSource | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_XMMTarget | IA32OpProp1_SourceIsMemRef)),
INSTRUCTION(UCOMISDRegReg, ucomisd,
            BINARY(VEX_L128, VEX_vNONE, PREFIX_66, REX__, ESCAPE_0F__, 0x2e, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_SourceRegisterInModRM | IA32OpProp_DoubleFP | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_XMMSource | IA32OpProp1_XMMTarget)),
INSTRUCTION(UCOMISDRegMem, ucomisd,
            BINARY(VEX_L128, VEX_vNONE, PREFIX_66, REX__, ESCAPE_0F__, 0x2e, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_DoubleFP | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_XMMTarget | IA32OpProp1_SourceIsMemRef)),
INSTRUCTION(FXCHReg, fxch,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xd9, X87_________________(0xc8)),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_UsesTarget),
            PROPERTY1(0)),
INSTRUCTION(IDIV1AccReg, idiv,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xf6, 7, ModRM_EXT_, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SourceRegisterInModRM | IA32OpProp_TargetRegisterIgnored | IA32OpProp_ByteSource | IA32OpProp_ByteTarget | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_TargetRegIsImplicit)),
INSTRUCTION(IDIV2AccReg, idiv,
            BINARY(VEX_L___, VEX_vNONE, PREFIX_66, REX__, ESCAPE_____, 0xf7, 7, ModRM_EXT_, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SourceRegisterInModRM | IA32OpProp_TargetRegisterIgnored | IA32OpProp_ShortSource | IA32OpProp_ShortTarget | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_TargetRegIsImplicit)),
INSTRUCTION(IDIV4AccReg, idiv,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xf7, 7, ModRM_EXT_, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SourceRegisterInModRM | IA32OpProp_TargetRegisterIgnored | IA32OpProp_IntSource | IA32OpProp_IntTarget | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_TargetRegIsImplicit)),
INSTRUCTION(IDIV8AccReg, idiv,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX_W, ESCAPE_____, 0xf7, 7, ModRM_EXT_, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SourceRegisterInModRM | IA32OpProp_TargetRegisterIgnored | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_LongSource | IA32OpProp1_LongTarget | IA32OpProp1_TargetRegIsImplicit)),
INSTRUCTION(DIV4AccReg, div,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xf7, 6, ModRM_EXT_, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SourceRegisterInModRM | IA32OpProp_TargetRegisterIgnored | IA32OpProp_IntSource | IA32OpProp_IntTarget | IA32OpProp_UsesTarget),
            PROPERTY1(0)),
INSTRUCTION(DIV8AccReg, div,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX_W, ESCAPE_____, 0xf7, 6, ModRM_EXT_, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SourceRegisterInModRM | IA32OpProp_TargetRegisterIgnored | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_LongSource | IA32OpProp1_LongTarget)),
INSTRUCTION(IDIV1AccMem, idiv,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xf6, 7, ModRM_EXT_, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterIgnored | IA32OpProp_ByteSource | IA32OpProp_ByteTarget | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SourceIsMemRef | IA32OpProp1_TargetRegIsImplicit)),
INSTRUCTION(IDIV2AccMem, idiv,
            BINARY(VEX_L___, VEX_vNONE, PREFIX_66, REX__, ESCAPE_____, 0xf7, 7, ModRM_EXT_, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterIgnored | IA32OpProp_ShortSource | IA32OpProp_ShortTarget | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SourceIsMemRef | IA32OpProp1_TargetRegIsImplicit)),
INSTRUCTION(IDIV4AccMem, idiv,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xf7, 7, ModRM_EXT_, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterIgnored | IA32OpProp_IntSource | IA32OpProp_IntTarget | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SourceIsMemRef | IA32OpProp1_TargetRegIsImplicit)),
INSTRUCTION(IDIV8AccMem, idiv,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX_W, ESCAPE_____, 0xf7, 7, ModRM_EXT_, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterIgnored | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_LongSource | IA32OpProp1_LongTarget | IA32OpProp1_SourceIsMemRef | IA32OpProp1_TargetRegIsImplicit)),
INSTRUCTION(DIV4AccMem, div,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xf7, 6, ModRM_EXT_, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterIgnored | IA32OpProp_IntSource | IA32OpProp_IntTarget | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SourceIsMemRef)),
INSTRUCTION(DIV8AccMem, div,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX_W, ESCAPE_____, 0xf7, 6, ModRM_EXT_, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterIgnored | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_LongSource | IA32OpProp1_LongTarget | IA32OpProp1_SourceIsMemRef)),
INSTRUCTION(DIVSSRegReg, divss,
            BINARY(VEX_L128, VEX_vReg_, PREFIX_F3, REX__, ESCAPE_0F__, 0x5e, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SingleFP | IA32OpProp_SourceRegisterInModRM | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_XMMSource | IA32OpProp1_XMMTarget)),
INSTRUCTION(DIVSSRegMem, divss,
            BINARY(VEX_L128, VEX_vReg_, PREFIX_F3, REX__, ESCAPE_0F__, 0x5e, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SingleFP | IA32OpProp_IntSource | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SourceIsMemRef | IA32OpProp1_XMMTarget)),
INSTRUCTION(DIVPSRegReg, divps,
            BINARY(VEX_L128, VEX_vReg_, PREFIX___, REX__, ESCAPE_0F__, 0x5e, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SingleFP | IA32OpProp_SourceRegisterInModRM | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_XMMSource | IA32OpProp1_XMMTarget)),
INSTRUCTION(DIVPSRegMem, divps,
            BINARY(VEX_L128, VEX_vReg_, PREFIX___, REX__, ESCAPE_0F__, 0x5e, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SingleFP | IA32OpProp_IntSource | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SourceIsMemRef | IA32OpProp1_XMMTarget)),
INSTRUCTION(DIVSDRegReg, divsd,
            BINARY(VEX_L128, VEX_vReg_, PREFIX_F2, REX__, ESCAPE_0F__, 0x5e, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_DoubleFP | IA32OpProp_SourceRegisterInModRM | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_XMMSource | IA32OpProp1_XMMTarget)),
INSTRUCTION(DIVSDRegMem, divsd,
            BINARY(VEX_L128, VEX_vReg_, PREFIX_F2, REX__, ESCAPE_0F__, 0x5e, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_DoubleFP | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SourceIsMemRef | IA32OpProp1_XMMTarget)),
INSTRUCTION(DIVPDRegReg, divpd,
            BINARY(VEX_L128, VEX_vReg_, PREFIX_66, REX__, ESCAPE_0F__, 0x5e, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_DoubleFP | IA32OpProp_SourceRegisterInModRM | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_XMMSource | IA32OpProp1_XMMTarget)),
INSTRUCTION(DIVPDRegMem, divpd,
            BINARY(VEX_L128, VEX_vReg_, PREFIX_66, REX__, ESCAPE_0F__, 0x5e, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_DoubleFP | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SourceIsMemRef | IA32OpProp1_XMMTarget)),
INSTRUCTION(IMUL1AccReg, imul,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xf6, 5, ModRM_EXT_, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SourceRegisterInModRM | IA32OpProp_TargetRegisterIgnored | IA32OpProp_ByteSource | IA32OpProp_ByteTarget | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_TargetRegIsImplicit)),
INSTRUCTION(IMUL2AccReg, imul,
            BINARY(VEX_L___, VEX_vNONE, PREFIX_66, REX__, ESCAPE_____, 0xf7, 5, ModRM_EXT_, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SourceRegisterInModRM | IA32OpProp_TargetRegisterIgnored | IA32OpProp_ShortSource | IA32OpProp_ShortTarget | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_TargetRegIsImplicit)),
INSTRUCTION(IMUL4AccReg, imul,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xf7, 5, ModRM_EXT_, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SourceRegisterInModRM | IA32OpProp_TargetRegisterIgnored | IA32OpProp_IntSource | IA32OpProp_IntTarget | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_TargetRegIsImplicit)),
INSTRUCTION(IMUL8AccReg, imul,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX_W, ESCAPE_____, 0xf7, 5, ModRM_EXT_, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SourceRegisterInModRM | IA32OpProp_TargetRegisterIgnored | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_LongSource | IA32OpProp1_LongTarget | IA32OpProp1_TargetRegIsImplicit)),
INSTRUCTION(IMUL1AccMem, imul,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xf6, 5, ModRM_EXT_, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterIgnored | IA32OpProp_ByteSource | IA32OpProp_ByteTarget | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SourceIsMemRef | IA32OpProp1_TargetRegIsImplicit)),
INSTRUCTION(IMUL2AccMem, imul,
            BINARY(VEX_L___, VEX_vNONE, PREFIX_66, REX__, ESCAPE_____, 0xf7, 5, ModRM_EXT_, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterIgnored | IA32OpProp_ShortSource | IA32OpProp_ShortTarget | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SourceIsMemRef | IA32OpProp1_TargetRegIsImplicit)),
INSTRUCTION(IMUL4AccMem, imul,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xf7, 5, ModRM_EXT_, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterIgnored | IA32OpProp_IntSource | IA32OpProp_IntTarget | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SourceIsMemRef | IA32OpProp1_TargetRegIsImplicit)),
INSTRUCTION(IMUL8AccMem, imul,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX_W, ESCAPE_____, 0xf7, 5, ModRM_EXT_, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterIgnored | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_LongSource | IA32OpProp1_SourceIsMemRef | IA32OpProp1_LongTarget | IA32OpProp1_TargetRegIsImplicit)),
INSTRUCTION(IMUL2RegReg, imul,
            BINARY(VEX_L___, VEX_vNONE, PREFIX_66, REX__, ESCAPE_0F__, 0xaf, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SourceRegisterInModRM | IA32OpProp_ShortSource | IA32OpProp_ShortTarget | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(0)),
INSTRUCTION(IMUL4RegReg, imul,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_0F__, 0xaf, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SourceRegisterInModRM | IA32OpProp_IntSource | IA32OpProp_IntTarget | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(0)),
INSTRUCTION(IMUL8RegReg, imul,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX_W, ESCAPE_0F__, 0xaf, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SourceRegisterInModRM | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_LongSource | IA32OpProp1_LongTarget)),
INSTRUCTION(IMUL2RegMem, imul,
            BINARY(VEX_L___, VEX_vNONE, PREFIX_66, REX__, ESCAPE_0F__, 0xaf, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_ShortSource | IA32OpProp_ShortTarget | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SourceIsMemRef)),
INSTRUCTION(IMUL4RegMem, imul,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_0F__, 0xaf, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_IntSource | IA32OpProp_IntTarget | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SourceIsMemRef)),
INSTRUCTION(IMUL8RegMem, imul,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX_W, ESCAPE_0F__, 0xaf, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_LongSource | IA32OpProp1_LongTarget | IA32OpProp1_SourceIsMemRef)),
INSTRUCTION(IMUL2RegRegImm2, imul,
            BINARY(VEX_L___, VEX_vNONE, PREFIX_66, REX__, ESCAPE_____, 0x69, 0, ModRM_RM__, Immediate_2),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SourceRegisterInModRM | IA32OpProp_ShortSource | IA32OpProp_ShortTarget | IA32OpProp_ShortImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesCarryFlag),
            PROPERTY1(0)),
INSTRUCTION(IMUL2RegRegImms, imul,
            BINARY(VEX_L___, VEX_vNONE, PREFIX_66, REX__, ESCAPE_____, 0x6b, 0, ModRM_RM__, Immediate_S),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SourceRegisterInModRM | IA32OpProp_ShortSource | IA32OpProp_ShortTarget | IA32OpProp_SignExtendImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesCarryFlag),
            PROPERTY1(0)),
INSTRUCTION(IMUL4RegRegImm4, imul,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x69, 0, ModRM_RM__, Immediate_4),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SourceRegisterInModRM | IA32OpProp_IntSource | IA32OpProp_IntTarget | IA32OpProp_IntImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesCarryFlag),
            PROPERTY1(0)),
INSTRUCTION(IMUL8RegRegImm4, imul,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX_W, ESCAPE_____, 0x69, 0, ModRM_RM__, Immediate_4),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SourceRegisterInModRM | IA32OpProp_IntImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesCarryFlag),
            PROPERTY1(IA32OpProp1_LongSource | IA32OpProp1_LongTarget)),
INSTRUCTION(IMUL4RegRegImms, imul,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x6b, 0, ModRM_RM__, Immediate_S),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SourceRegisterInModRM | IA32OpProp_IntSource | IA32OpProp_IntTarget | IA32OpProp_SignExtendImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesCarryFlag),
            PROPERTY1(0)),
INSTRUCTION(IMUL8RegRegImms, imul,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX_W, ESCAPE_____, 0x6b, 0, ModRM_RM__, Immediate_S),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SourceRegisterInModRM | IA32OpProp_SignExtendImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesCarryFlag),
            PROPERTY1(IA32OpProp1_LongSource | IA32OpProp1_LongTarget)),
INSTRUCTION(IMUL2RegMemImm2, imul,
            BINARY(VEX_L___, VEX_vNONE, PREFIX_66, REX__, ESCAPE_____, 0x69, 0, ModRM_RM__, Immediate_2),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_ShortSource | IA32OpProp_ShortTarget | IA32OpProp_ShortImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesCarryFlag),
            PROPERTY1(IA32OpProp1_SourceIsMemRef)),
INSTRUCTION(IMUL2RegMemImms, imul,
            BINARY(VEX_L___, VEX_vNONE, PREFIX_66, REX__, ESCAPE_____, 0x6b, 0, ModRM_RM__, Immediate_S),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_ShortSource | IA32OpProp_ShortTarget | IA32OpProp_SignExtendImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesCarryFlag),
            PROPERTY1(IA32OpProp1_SourceIsMemRef)),
INSTRUCTION(IMUL4RegMemImm4, imul,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x69, 0, ModRM_RM__, Immediate_4),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_IntSource | IA32OpProp_IntTarget | IA32OpProp_IntImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesCarryFlag),
            PROPERTY1(IA32OpProp1_SourceIsMemRef)),
INSTRUCTION(IMUL8RegMemImm4, imul,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX_W, ESCAPE_____, 0x69, 0, ModRM_RM__, Immediate_4),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_IntImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesCarryFlag),
            PROPERTY1(IA32OpProp1_LongSource | IA32OpProp1_SourceIsMemRef | IA32OpProp1_LongTarget)),
INSTRUCTION(IMUL4RegMemImms, imul,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x6b, 0, ModRM_RM__, Immediate_S),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_IntSource | IA32OpProp_IntTarget | IA32OpProp_SignExtendImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesCarryFlag),
            PROPERTY1(IA32OpProp1_SourceIsMemRef)),
INSTRUCTION(IMUL8RegMemImms, imul,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX_W, ESCAPE_____, 0x6b, 0, ModRM_RM__, Immediate_S),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SignExtendImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesCarryFlag),
            PROPERTY1(IA32OpProp1_LongSource | IA32OpProp1_SourceIsMemRef | IA32OpProp1_LongTarget)),
INSTRUCTION(MUL1AccReg, mul,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xf6, 4, ModRM_EXT_, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SourceRegisterInModRM | IA32OpProp_TargetRegisterIgnored | IA32OpProp_ByteSource | IA32OpProp_ByteTarget | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(0)),
INSTRUCTION(MUL2AccReg, mul,
            BINARY(VEX_L___, VEX_vNONE, PREFIX_66, REX__, ESCAPE_____, 0xf7, 4, ModRM_EXT_, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SourceRegisterInModRM | IA32OpProp_TargetRegisterIgnored | IA32OpProp_ShortTarget | IA32OpProp_ShortSource | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(0)),
INSTRUCTION(MUL4AccReg, mul,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xf7, 4, ModRM_EXT_, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SourceRegisterInModRM | IA32OpProp_TargetRegisterIgnored | IA32OpProp_IntSource | IA32OpProp_IntTarget | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(0)),
INSTRUCTION(MUL8AccReg, mul,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX_W, ESCAPE_____, 0xf7, 4, ModRM_EXT_, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SourceRegisterInModRM | IA32OpProp_TargetRegisterIgnored | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_LongSource | IA32OpProp1_LongTarget)),
INSTRUCTION(MUL1AccMem, mul,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xf6, 4, ModRM_EXT_, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterIgnored | IA32OpProp_ByteSource | IA32OpProp_ByteTarget | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SourceIsMemRef)),
INSTRUCTION(MUL2AccMem, mul,
            BINARY(VEX_L___, VEX_vNONE, PREFIX_66, REX__, ESCAPE_____, 0xf7, 4, ModRM_EXT_, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterIgnored | IA32OpProp_ShortSource | IA32OpProp_ShortTarget | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SourceIsMemRef)),
INSTRUCTION(MUL4AccMem, mul,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xf7, 4, ModRM_EXT_, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterIgnored | IA32OpProp_IntSource | IA32OpProp_IntTarget | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SourceIsMemRef)),
INSTRUCTION(MUL8AccMem, mul,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX_W, ESCAPE_____, 0xf7, 4, ModRM_EXT_, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterIgnored | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_LongSource | IA32OpProp1_LongTarget | IA32OpProp1_SourceIsMemRef)),
INSTRUCTION(MULSSRegReg, mulss,
            BINARY(VEX_L128, VEX_vReg_, PREFIX_F3, REX__, ESCAPE_0F__, 0x59, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SingleFP | IA32OpProp_SourceRegisterInModRM | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_XMMSource | IA32OpProp1_XMMTarget)),
INSTRUCTION(MULSSRegMem, mulss,
            BINARY(VEX_L128, VEX_vReg_, PREFIX_F3, REX__, ESCAPE_0F__, 0x59, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SingleFP | IA32OpProp_IntSource | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SourceIsMemRef | IA32OpProp1_XMMTarget)),
INSTRUCTION(MULPSRegReg, mulps,
            BINARY(VEX_L128, VEX_vReg_, PREFIX___, REX__, ESCAPE_0F__, 0x59, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SingleFP | IA32OpProp_SourceRegisterInModRM | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_XMMSource | IA32OpProp1_XMMTarget)),
INSTRUCTION(MULPSRegMem, mulps,
            BINARY(VEX_L128, VEX_vReg_, PREFIX___, REX__, ESCAPE_0F__, 0x59, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SingleFP | IA32OpProp_IntSource | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SourceIsMemRef | IA32OpProp1_XMMTarget)),
INSTRUCTION(MULSDRegReg, mulsd,
            BINARY(VEX_L128, VEX_vReg_, PREFIX_F2, REX__, ESCAPE_0F__, 0x59, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_DoubleFP | IA32OpProp_SourceRegisterInModRM | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_XMMSource | IA32OpProp1_XMMTarget)),
INSTRUCTION(MULSDRegMem, mulsd,
            BINARY(VEX_L128, VEX_vReg_, PREFIX_F2, REX__, ESCAPE_0F__, 0x59, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_DoubleFP | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SourceIsMemRef | IA32OpProp1_XMMTarget)),
INSTRUCTION(MULPDRegReg, mulpd,
            BINARY(VEX_L128, VEX_vReg_, PREFIX_66, REX__, ESCAPE_0F__, 0x59, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_DoubleFP | IA32OpProp_SourceRegisterInModRM | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_XMMSource | IA32OpProp1_XMMTarget)),
INSTRUCTION(MULPDRegMem, mulpd,
            BINARY(VEX_L128, VEX_vReg_, PREFIX_66, REX__, ESCAPE_0F__, 0x59, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_DoubleFP | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SourceIsMemRef | IA32OpProp1_XMMTarget)),
INSTRUCTION(INC1Reg, inc,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xfe, 0, ModRM_EXT_, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterInModRM | IA32OpProp_ByteTarget | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SetsCCForCompare)),
#ifdef TR_TARGET_64BIT
INSTRUCTION(INC2Reg, inc,
            BINARY(VEX_L___, VEX_vNONE, PREFIX_66, REX__, ESCAPE_____, 0xff, 0, ModRM_EXT_, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterInModRM | IA32OpProp_ShortTarget | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SetsCCForCompare)),
INSTRUCTION(INC4Reg, inc,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xff, 0, ModRM_EXT_, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterInModRM | IA32OpProp_IntTarget | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SetsCCForCompare)),
#else
INSTRUCTION(INC2Reg, inc,
            BINARY(VEX_L___, VEX_vNONE, PREFIX_66, REX__, ESCAPE_____, 0x40, 0, ModRM_NONE, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterInOpcode | IA32OpProp_ShortTarget | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SetsCCForCompare)),
INSTRUCTION(INC4Reg, inc,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x40, 0, ModRM_NONE, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterInOpcode | IA32OpProp_IntTarget | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SetsCCForCompare)),
#endif
INSTRUCTION(INC8Reg, inc,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX_W, ESCAPE_____, 0xff, 0, ModRM_EXT_, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterInModRM | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SetsCCForCompare | IA32OpProp1_LongSource | IA32OpProp1_LongTarget)),
INSTRUCTION(INC1Mem, inc,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xfe, 0, ModRM_EXT_, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_ByteTarget | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SetsCCForCompare | IA32OpProp1_SupportsLockPrefix)),
INSTRUCTION(INC2Mem, inc,
            BINARY(VEX_L___, VEX_vNONE, PREFIX_66, REX__, ESCAPE_____, 0xff, 0, ModRM_EXT_, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_ShortTarget | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SetsCCForCompare | IA32OpProp1_SupportsLockPrefix)),
INSTRUCTION(INC4Mem, inc,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xff, 0, ModRM_EXT_, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_IntTarget | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SetsCCForCompare | IA32OpProp1_SupportsLockPrefix)),
INSTRUCTION(INC8Mem, inc,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX_W, ESCAPE_____, 0xff, 0, ModRM_EXT_, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SetsCCForCompare | IA32OpProp1_SupportsLockPrefix | IA32OpProp1_LongTarget)),
INSTRUCTION(JA1, ja,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x77, 0, ModRM_NONE, Immediate_1),
            PROPERTY0(IA32OpProp_BranchOp | IA32OpProp_TestsZeroFlag | IA32OpProp_TestsCarryFlag | IA32OpProp_ByteImmediate),
            PROPERTY1(0)),
INSTRUCTION(JAE1, jae,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x73, 0, ModRM_NONE, Immediate_1),
            PROPERTY0(IA32OpProp_BranchOp | IA32OpProp_TestsCarryFlag | IA32OpProp_ByteImmediate),
            PROPERTY1(0)),
INSTRUCTION(JB1, jb,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x72, 0, ModRM_NONE, Immediate_1),
            PROPERTY0(IA32OpProp_BranchOp | IA32OpProp_TestsCarryFlag | IA32OpProp_ByteImmediate),
            PROPERTY1(0)),
INSTRUCTION(JBE1, jbe,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x76, 0, ModRM_NONE, Immediate_1),
            PROPERTY0(IA32OpProp_BranchOp | IA32OpProp_TestsZeroFlag | IA32OpProp_TestsCarryFlag | IA32OpProp_ByteImmediate),
            PROPERTY1(0)),
INSTRUCTION(JE1, je,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x74, 0, ModRM_NONE, Immediate_1),
            PROPERTY0(IA32OpProp_BranchOp | IA32OpProp_TestsZeroFlag | IA32OpProp_ByteImmediate),
            PROPERTY1(0)),
INSTRUCTION(JNE1, jne,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x75, 0, ModRM_NONE, Immediate_1),
            PROPERTY0(IA32OpProp_BranchOp | IA32OpProp_TestsZeroFlag | IA32OpProp_ByteImmediate),
            PROPERTY1(0)),
INSTRUCTION(JG1, jg,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x7f, 0, ModRM_NONE, Immediate_1),
            PROPERTY0(IA32OpProp_BranchOp | IA32OpProp_TestsOverflowFlag | IA32OpProp_TestsSignFlag | IA32OpProp_TestsZeroFlag | IA32OpProp_ByteImmediate),
            PROPERTY1(0)),
INSTRUCTION(JGE1, jge,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x7d, 0, ModRM_NONE, Immediate_1),
            PROPERTY0(IA32OpProp_BranchOp | IA32OpProp_TestsOverflowFlag | IA32OpProp_TestsSignFlag | IA32OpProp_ByteImmediate),
            PROPERTY1(0)),
INSTRUCTION(JL1, jl,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x7c, 0, ModRM_NONE, Immediate_1),
            PROPERTY0(IA32OpProp_BranchOp | IA32OpProp_TestsOverflowFlag | IA32OpProp_TestsSignFlag | IA32OpProp_ByteImmediate),
            PROPERTY1(0)),
INSTRUCTION(JLE1, jle,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x7e, 0, ModRM_NONE, Immediate_1),
            PROPERTY0(IA32OpProp_BranchOp | IA32OpProp_TestsOverflowFlag | IA32OpProp_TestsSignFlag | IA32OpProp_TestsZeroFlag | IA32OpProp_ByteImmediate),
            PROPERTY1(0)),
INSTRUCTION(JO1, jo,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x70, 0, ModRM_NONE, Immediate_1),
            PROPERTY0(IA32OpProp_BranchOp | IA32OpProp_TestsOverflowFlag | IA32OpProp_ByteImmediate),
            PROPERTY1(0)),
INSTRUCTION(JNO1, jno,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x71, 0, ModRM_NONE, Immediate_1),
            PROPERTY0(IA32OpProp_BranchOp | IA32OpProp_TestsOverflowFlag | IA32OpProp_ByteImmediate),
            PROPERTY1(0)),
INSTRUCTION(JS1, js,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x78, 0, ModRM_NONE, Immediate_1),
            PROPERTY0(IA32OpProp_BranchOp | IA32OpProp_TestsSignFlag | IA32OpProp_ByteImmediate),
            PROPERTY1(0)),
INSTRUCTION(JNS1, jns,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x79, 0, ModRM_NONE, Immediate_1),
            PROPERTY0(IA32OpProp_BranchOp | IA32OpProp_TestsSignFlag | IA32OpProp_ByteImmediate),
            PROPERTY1(0)),
INSTRUCTION(JPO1, jpo,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x7b, 0, ModRM_NONE, Immediate_1),
            PROPERTY0(IA32OpProp_BranchOp | IA32OpProp_TestsParityFlag | IA32OpProp_ByteImmediate),
            PROPERTY1(0)),
INSTRUCTION(JPE1, jpe,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x7a, 0, ModRM_NONE, Immediate_1),
            PROPERTY0(IA32OpProp_BranchOp | IA32OpProp_TestsParityFlag | IA32OpProp_ByteImmediate),
            PROPERTY1(0)),
INSTRUCTION(JMP1, jmp,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xeb, 0, ModRM_NONE, Immediate_1),
            PROPERTY0(IA32OpProp_BranchOp | IA32OpProp_ByteImmediate),
            PROPERTY1(0)),
INSTRUCTION(JA4, ja,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_0F__, 0x87, 0, ModRM_NONE, Immediate_4),
            PROPERTY0(IA32OpProp_BranchOp | IA32OpProp_TestsZeroFlag | IA32OpProp_TestsCarryFlag | IA32OpProp_IntImmediate),
            PROPERTY1(0)),
INSTRUCTION(JAE4, jae,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_0F__, 0x83, 0, ModRM_NONE, Immediate_4),
            PROPERTY0(IA32OpProp_BranchOp | IA32OpProp_TestsCarryFlag | IA32OpProp_IntImmediate),
            PROPERTY1(0)),
INSTRUCTION(JB4, jb,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_0F__, 0x82, 0, ModRM_NONE, Immediate_4),
            PROPERTY0(IA32OpProp_BranchOp | IA32OpProp_TestsCarryFlag | IA32OpProp_IntImmediate),
            PROPERTY1(0)),
INSTRUCTION(JBE4, jbe,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_0F__, 0x86, 0, ModRM_NONE, Immediate_4),
            PROPERTY0(IA32OpProp_BranchOp | IA32OpProp_TestsZeroFlag | IA32OpProp_TestsCarryFlag | IA32OpProp_IntImmediate),
            PROPERTY1(0)),
INSTRUCTION(JE4, je,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_0F__, 0x84, 0, ModRM_NONE, Immediate_4),
            PROPERTY0(IA32OpProp_BranchOp | IA32OpProp_TestsZeroFlag | IA32OpProp_IntImmediate),
            PROPERTY1(0)),
INSTRUCTION(JNE4, jne,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_0F__, 0x85, 0, ModRM_NONE, Immediate_4),
            PROPERTY0(IA32OpProp_BranchOp | IA32OpProp_TestsZeroFlag | IA32OpProp_IntImmediate),
            PROPERTY1(0)),
INSTRUCTION(JG4, jg,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_0F__, 0x8f, 0, ModRM_NONE, Immediate_4),
            PROPERTY0(IA32OpProp_BranchOp | IA32OpProp_TestsOverflowFlag | IA32OpProp_TestsSignFlag | IA32OpProp_TestsZeroFlag | IA32OpProp_IntImmediate),
            PROPERTY1(0)),
INSTRUCTION(JGE4, jge,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_0F__, 0x8d, 0, ModRM_NONE, Immediate_4),
            PROPERTY0(IA32OpProp_BranchOp | IA32OpProp_TestsOverflowFlag | IA32OpProp_TestsSignFlag | IA32OpProp_IntImmediate),
            PROPERTY1(0)),
INSTRUCTION(JL4, jl,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_0F__, 0x8c, 0, ModRM_NONE, Immediate_4),
            PROPERTY0(IA32OpProp_BranchOp | IA32OpProp_TestsOverflowFlag | IA32OpProp_TestsSignFlag | IA32OpProp_IntImmediate),
            PROPERTY1(0)),
INSTRUCTION(JLE4, jle,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_0F__, 0x8e, 0, ModRM_NONE, Immediate_4),
            PROPERTY0(IA32OpProp_BranchOp | IA32OpProp_TestsOverflowFlag | IA32OpProp_TestsSignFlag | IA32OpProp_TestsZeroFlag | IA32OpProp_IntImmediate),
            PROPERTY1(0)),
INSTRUCTION(JO4, jo,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_0F__, 0x80, 0, ModRM_NONE, Immediate_4),
            PROPERTY0(IA32OpProp_BranchOp | IA32OpProp_TestsOverflowFlag | IA32OpProp_IntImmediate),
            PROPERTY1(0)),
INSTRUCTION(JNO4, jno,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_0F__, 0x81, 0, ModRM_NONE, Immediate_4),
            PROPERTY0(IA32OpProp_BranchOp | IA32OpProp_TestsOverflowFlag | IA32OpProp_IntImmediate),
            PROPERTY1(0)),
INSTRUCTION(JS4, js,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_0F__, 0x88, 0, ModRM_NONE, Immediate_4),
            PROPERTY0(IA32OpProp_BranchOp | IA32OpProp_TestsSignFlag | IA32OpProp_IntImmediate),
            PROPERTY1(0)),
INSTRUCTION(JNS4, jns,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_0F__, 0x89, 0, ModRM_NONE, Immediate_4),
            PROPERTY0(IA32OpProp_BranchOp | IA32OpProp_TestsSignFlag | IA32OpProp_IntImmediate),
            PROPERTY1(0)),
INSTRUCTION(JPO4, jpo,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_0F__, 0x8b, 0, ModRM_NONE, Immediate_4),
            PROPERTY0(IA32OpProp_BranchOp | IA32OpProp_TestsParityFlag | IA32OpProp_IntImmediate),
            PROPERTY1(0)),
INSTRUCTION(JPE4, jpe,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_0F__, 0x8a, 0, ModRM_NONE, Immediate_4),
            PROPERTY0(IA32OpProp_BranchOp | IA32OpProp_TestsParityFlag | IA32OpProp_IntImmediate),
            PROPERTY1(0)),
INSTRUCTION(JMP4, jmp,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xe9, 0, ModRM_NONE, Immediate_4),
            PROPERTY0(IA32OpProp_BranchOp | IA32OpProp_IntImmediate),
            PROPERTY1(0)),
INSTRUCTION(JMPReg, jmp,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xff, 4, ModRM_MR__, Immediate_0),
            PROPERTY0(IA32OpProp_BranchOp | IA32OpProp_TargetRegisterInModRM | IA32OpProp_IntTarget),
            PROPERTY1(0)),
INSTRUCTION(JMPMem, jmp,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xff, 4, ModRM_MR__, Immediate_0),
            PROPERTY0(IA32OpProp_BranchOp),
            PROPERTY1(IA32OpProp1_SourceIsMemRef)),
INSTRUCTION(JRCXZ1, jrcxz,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xe3, 0, ModRM_NONE, Immediate_1),
            PROPERTY0(IA32OpProp_BranchOp | IA32OpProp_TestsZeroFlag | IA32OpProp_TestsCarryFlag | IA32OpProp_ByteImmediate),
            PROPERTY1(0)),
INSTRUCTION(LOOP1, loop,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xe2, 0, ModRM_NONE, Immediate_1),
            PROPERTY0(IA32OpProp_BranchOp | IA32OpProp_ByteImmediate),
            PROPERTY1(0)),
INSTRUCTION(LAHF, lahf,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x9f, 0, ModRM_NONE, Immediate_0),
            PROPERTY0(IA32OpProp_TestsSignFlag | IA32OpProp_TestsZeroFlag | IA32OpProp_TestsParityFlag | IA32OpProp_TestsCarryFlag),
            PROPERTY1(IA32OpProp1_IsIA32Only)),
INSTRUCTION(LDDQU, lddqu,
            BINARY(VEX_L128, VEX_vNONE, PREFIX_F3, REX__, ESCAPE_0F__, 0xf0, 0, ModRM_NONE, Immediate_0),
            PROPERTY0(IA32OpProp_UsesTarget | IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterInModRM | IA32OpProp_DoubleFP),
            PROPERTY1(IA32OpProp1_SourceIsMemRef | IA32OpProp1_XMMTarget)),
INSTRUCTION(LEA2RegMem, lea,
            BINARY(VEX_L___, VEX_vNONE, PREFIX_66, REX__, ESCAPE_____, 0x8d, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_ShortTarget),
            PROPERTY1(IA32OpProp1_SourceIsMemRef)),
INSTRUCTION(LEA4RegMem, lea,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x8d, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_IntTarget),
            PROPERTY1(IA32OpProp1_SourceIsMemRef)),
INSTRUCTION(LEA8RegMem, lea,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX_W, ESCAPE_____, 0x8d, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget),
            PROPERTY1(IA32OpProp1_LongSource | IA32OpProp1_LongTarget | IA32OpProp1_SourceIsMemRef)),
INSTRUCTION(S1MemReg, mov,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x88, 0, ModRM_MR__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_ByteSource | IA32OpProp_ByteTarget),
            PROPERTY1(0)),
INSTRUCTION(S2MemReg, mov,
            BINARY(VEX_L___, VEX_vNONE, PREFIX_66, REX__, ESCAPE_____, 0x89, 0, ModRM_MR__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_ShortSource | IA32OpProp_ShortTarget),
            PROPERTY1(0)),
INSTRUCTION(S4MemReg, mov,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x89, 0, ModRM_MR__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_IntSource | IA32OpProp_IntTarget),
            PROPERTY1(0)),
INSTRUCTION(S8MemReg, mov,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX_W, ESCAPE_____, 0x89, 0, ModRM_MR__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget),
            PROPERTY1(IA32OpProp1_LongSource | IA32OpProp1_LongTarget)),
INSTRUCTION(S1MemImm1, mov,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xc6, 0, ModRM_EXT_, Immediate_1),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_ByteTarget | IA32OpProp_ByteImmediate),
            PROPERTY1(0)),
INSTRUCTION(S2MemImm2, mov,
            BINARY(VEX_L___, VEX_vNONE, PREFIX_66, REX__, ESCAPE_____, 0xc7, 0, ModRM_EXT_, Immediate_2),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_ShortTarget | IA32OpProp_ShortImmediate),
            PROPERTY1(0)),
INSTRUCTION(S4MemImm4, mov,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xc7, 0, ModRM_EXT_, Immediate_4),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_IntTarget | IA32OpProp_IntImmediate),
            PROPERTY1(0)),
INSTRUCTION(XRS4MemImm4, xrelease mov,
            BINARY(VEX_L___, VEX_vNONE, PREFIX_F3, REX__, ESCAPE_____, 0xc7, 0, ModRM_EXT_, Immediate_4),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_IntTarget | IA32OpProp_IntImmediate),
            PROPERTY1(IA32OpProp1_NeedsXreleasePrefix)),
INSTRUCTION(S8MemImm4, mov,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX_W, ESCAPE_____, 0xc7, 0, ModRM_EXT_, Immediate_4),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_IntImmediate),
            PROPERTY1(IA32OpProp1_LongTarget)),
INSTRUCTION(XRS8MemImm4, xrelease mov,
            BINARY(VEX_L___, VEX_vNONE, PREFIX_F3, REX_W, ESCAPE_____, 0xc7, 0, ModRM_EXT_, Immediate_4),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_IntImmediate),
            PROPERTY1(IA32OpProp1_LongTarget | IA32OpProp1_NeedsXreleasePrefix)),
INSTRUCTION(L1RegMem, mov,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x8a, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_ByteSource | IA32OpProp_ByteTarget),
            PROPERTY1(IA32OpProp1_SourceIsMemRef)),
INSTRUCTION(L2RegMem, mov,
            BINARY(VEX_L___, VEX_vNONE, PREFIX_66, REX__, ESCAPE_____, 0x8b, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_ShortSource | IA32OpProp_ShortTarget),
            PROPERTY1(IA32OpProp1_SourceIsMemRef)),
INSTRUCTION(L4RegMem, mov,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x8b, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_IntSource | IA32OpProp_IntTarget),
            PROPERTY1(IA32OpProp1_SourceIsMemRef)),
INSTRUCTION(L8RegMem, mov,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX_W, ESCAPE_____, 0x8b, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget),
            PROPERTY1(IA32OpProp1_LongSource | IA32OpProp1_SourceIsMemRef | IA32OpProp1_LongTarget)),
INSTRUCTION(MOVAPSRegReg, movaps,
            BINARY(VEX_L128, VEX_vNONE, PREFIX___, REX__, ESCAPE_0F__, 0x28, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SourceRegisterInModRM | IA32OpProp_SingleFP),
            PROPERTY1(IA32OpProp1_XMMSource | IA32OpProp1_XMMTarget)),
INSTRUCTION(MOVAPSRegMem, movaps,
            BINARY(VEX_L128, VEX_vNONE, PREFIX___, REX__, ESCAPE_0F__, 0x28, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SingleFP),
            PROPERTY1(IA32OpProp1_XMMSource | IA32OpProp1_SourceIsMemRef | IA32OpProp1_XMMTarget)),
INSTRUCTION(MOVAPSMemReg, movaps,
            BINARY(VEX_L128, VEX_vNONE, PREFIX___, REX__, ESCAPE_0F__, 0x29, 0, ModRM_MR__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SingleFP),
            PROPERTY1(IA32OpProp1_XMMSource | IA32OpProp1_XMMTarget)),
INSTRUCTION(MOVAPDRegReg, movapd,
            BINARY(VEX_L128, VEX_vNONE, PREFIX_66, REX__, ESCAPE_0F__, 0x28, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SourceRegisterInModRM | IA32OpProp_DoubleFP),
            PROPERTY1(IA32OpProp1_XMMSource | IA32OpProp1_XMMTarget)),
INSTRUCTION(MOVAPDRegMem, movapd,
            BINARY(VEX_L128, VEX_vNONE, PREFIX_66, REX__, ESCAPE_0F__, 0x28, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_DoubleFP),
            PROPERTY1(IA32OpProp1_XMMSource | IA32OpProp1_SourceIsMemRef | IA32OpProp1_XMMTarget)),
INSTRUCTION(MOVAPDMemReg, movapd,
            BINARY(VEX_L128, VEX_vNONE, PREFIX_66, REX__, ESCAPE_0F__, 0x29, 0, ModRM_MR__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_DoubleFP),
            PROPERTY1(IA32OpProp1_XMMSource | IA32OpProp1_XMMTarget)),
INSTRUCTION(MOVUPSRegReg, movups,
            BINARY(VEX_L128, VEX_vNONE, PREFIX___, REX__, ESCAPE_0F__, 0x10, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SourceRegisterInModRM | IA32OpProp_SingleFP),
            PROPERTY1(IA32OpProp1_XMMSource | IA32OpProp1_XMMTarget)),
INSTRUCTION(MOVUPSRegMem, movups,
            BINARY(VEX_L128, VEX_vNONE, PREFIX___, REX__, ESCAPE_0F__, 0x10, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SingleFP),
            PROPERTY1(IA32OpProp1_XMMSource | IA32OpProp1_SourceIsMemRef | IA32OpProp1_XMMTarget)),
INSTRUCTION(MOVUPSMemReg, movups,
            BINARY(VEX_L128, VEX_vNONE, PREFIX___, REX__, ESCAPE_0F__, 0x11, 0, ModRM_MR__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SingleFP),
            PROPERTY1(IA32OpProp1_XMMSource | IA32OpProp1_XMMTarget)),
INSTRUCTION(MOVUPDRegReg, movupd,
            BINARY(VEX_L128, VEX_vNONE, PREFIX_66, REX__, ESCAPE_0F__, 0x10, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SourceRegisterInModRM | IA32OpProp_DoubleFP),
            PROPERTY1(IA32OpProp1_XMMSource | IA32OpProp1_XMMTarget)),
INSTRUCTION(MOVUPDRegMem, movupd,
            BINARY(VEX_L128, VEX_vNONE, PREFIX_66, REX__, ESCAPE_0F__, 0x10, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_DoubleFP),
            PROPERTY1(IA32OpProp1_XMMSource | IA32OpProp1_SourceIsMemRef | IA32OpProp1_XMMTarget)),
INSTRUCTION(MOVUPDMemReg, movupd,
            BINARY(VEX_L128, VEX_vNONE, PREFIX_66, REX__, ESCAPE_0F__, 0x11, 0, ModRM_MR__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_DoubleFP),
            PROPERTY1(IA32OpProp1_XMMSource | IA32OpProp1_XMMTarget)),
INSTRUCTION(MOVSSRegReg, movss,
            BINARY(VEX_L128, VEX_vNONE, PREFIX_F3, REX__, ESCAPE_0F__, 0x10, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SourceRegisterInModRM | IA32OpProp_SingleFP),
            PROPERTY1(IA32OpProp1_XMMSource | IA32OpProp1_XMMTarget)),
INSTRUCTION(MOVSSRegMem, movss,
            BINARY(VEX_L128, VEX_vNONE, PREFIX_F3, REX__, ESCAPE_0F__, 0x10, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SingleFP | IA32OpProp_IntSource),
            PROPERTY1(IA32OpProp1_SourceIsMemRef | IA32OpProp1_XMMTarget)),
INSTRUCTION(MOVSSMemReg, movss,
            BINARY(VEX_L128, VEX_vNONE, PREFIX_F3, REX__, ESCAPE_0F__, 0x11, 0, ModRM_MR__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SingleFP | IA32OpProp_IntTarget),
            PROPERTY1(IA32OpProp1_XMMSource)),
INSTRUCTION(MOVSDRegReg, movsd,
            BINARY(VEX_L128, VEX_vNONE, PREFIX_F2, REX__, ESCAPE_0F__, 0x10, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SourceRegisterInModRM | IA32OpProp_DoubleFP),
            PROPERTY1(IA32OpProp1_XMMSource | IA32OpProp1_XMMTarget)),
INSTRUCTION(MOVSDRegMem, movsd,
            BINARY(VEX_L128, VEX_vNONE, PREFIX_F2, REX__, ESCAPE_0F__, 0x10, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_DoubleFP),
            PROPERTY1(IA32OpProp1_SourceIsMemRef | IA32OpProp1_XMMTarget)),
INSTRUCTION(MOVSDMemReg, movsd,
            BINARY(VEX_L128, VEX_vNONE, PREFIX_F2, REX__, ESCAPE_0F__, 0x11, 0, ModRM_MR__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_DoubleFP),
            PROPERTY1(IA32OpProp1_XMMSource)),
INSTRUCTION(SQRTSSRegReg, sqrtss,
            BINARY(VEX_L128, VEX_vReg_, PREFIX_F3, REX__, ESCAPE_0F__, 0x51, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SourceRegisterInModRM | IA32OpProp_SingleFP),
            PROPERTY1(IA32OpProp1_XMMSource | IA32OpProp1_XMMTarget)),
INSTRUCTION(SQRTSDRegReg, sqrtsd,
            BINARY(VEX_L128, VEX_vReg_, PREFIX_F2, REX__, ESCAPE_0F__, 0x51, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SourceRegisterInModRM | IA32OpProp_DoubleFP),
            PROPERTY1(IA32OpProp1_XMMSource | IA32OpProp1_XMMTarget)),
INSTRUCTION(MOVDRegReg4, movd,
            BINARY(VEX_L128, VEX_vNONE, PREFIX_66, REX__, ESCAPE_0F__, 0x6e, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SourceRegisterInModRM | IA32OpProp_IntSource),
            PROPERTY1(IA32OpProp1_XMMTarget)),
INSTRUCTION(MOVQRegReg8, movq,
            BINARY(VEX_L128, VEX_vNONE, PREFIX_66, REX_W, ESCAPE_0F__, 0x6e, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SourceRegisterInModRM),
            PROPERTY1(IA32OpProp1_XMMTarget | IA32OpProp1_LongSource)),
INSTRUCTION(MOVDReg4Reg, movd,
            BINARY(VEX_L128, VEX_vNONE, PREFIX_66, REX__, ESCAPE_0F__, 0x7e, 0, ModRM_MR__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterInModRM | IA32OpProp_IntTarget),
            PROPERTY1(IA32OpProp1_XMMSource)),
INSTRUCTION(MOVQReg8Reg, movq,
            BINARY(VEX_L128, VEX_vNONE, PREFIX_66, REX_W, ESCAPE_0F__, 0x7e, 0, ModRM_MR__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterInModRM),
            PROPERTY1(IA32OpProp1_XMMSource | IA32OpProp1_LongTarget)),
INSTRUCTION(MOVDQURegReg, movdqu,
            BINARY(VEX_L128, VEX_vNONE, PREFIX_F3, REX__, ESCAPE_0F__, 0x6f, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SourceRegisterInModRM),
            PROPERTY1(IA32OpProp1_XMMSource | IA32OpProp1_XMMTarget)),
INSTRUCTION(MOVDQURegMem, movdqu,
            BINARY(VEX_L128, VEX_vNONE, PREFIX_F3, REX__, ESCAPE_0F__, 0x6f, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget),
            PROPERTY1(IA32OpProp1_XMMSource | IA32OpProp1_SourceIsMemRef | IA32OpProp1_XMMTarget)),
INSTRUCTION(VMOVDQURegReg, vmovdqu,
            BINARY(VEX_L256, VEX_vNONE, PREFIX_F3, REX__, ESCAPE_0F__, 0x6f, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SourceRegisterInModRM),
            PROPERTY1(IA32OpProp1_XMMSource | IA32OpProp1_XMMTarget)),
INSTRUCTION(VMOVDQURegMem, vmovdqu,
            BINARY(VEX_L256, VEX_vNONE, PREFIX_F3, REX__, ESCAPE_0F__, 0x6f, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget),
            PROPERTY1(IA32OpProp1_XMMSource | IA32OpProp1_SourceIsMemRef | IA32OpProp1_XMMTarget)),
INSTRUCTION(MOVDQUMemReg, movdqu,
            BINARY(VEX_L128, VEX_vNONE, PREFIX_F3, REX__, ESCAPE_0F__, 0x7f, 0, ModRM_MR__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget),
            PROPERTY1(IA32OpProp1_XMMSource | IA32OpProp1_XMMTarget)),
INSTRUCTION(MOV1RegReg, mov,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x8a, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SourceRegisterInModRM | IA32OpProp_ByteSource | IA32OpProp_ByteTarget),
            PROPERTY1(0)),
INSTRUCTION(MOV2RegReg, mov,
            BINARY(VEX_L___, VEX_vNONE, PREFIX_66, REX__, ESCAPE_____, 0x8b, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SourceRegisterInModRM | IA32OpProp_ShortTarget | IA32OpProp_ShortSource),
            PROPERTY1(0)),
INSTRUCTION(MOV4RegReg, mov,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x8b, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SourceRegisterInModRM | IA32OpProp_IntSource | IA32OpProp_IntTarget),
            PROPERTY1(0)),
INSTRUCTION(MOV8RegReg, mov,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX_W, ESCAPE_____, 0x8b, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SourceRegisterInModRM),
            PROPERTY1(IA32OpProp1_LongSource | IA32OpProp1_LongTarget)),
INSTRUCTION(CMOVB4RegReg, cmovb,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_0F__, 0x42, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SourceRegisterInModRM | IA32OpProp_IntSource | IA32OpProp_IntTarget | IA32OpProp_TestsCarryFlag),
            PROPERTY1(0)),
INSTRUCTION(CMOVB8RegReg, cmovb,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX_W, ESCAPE_0F__, 0x42, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SourceRegisterInModRM | IA32OpProp_IntSource | IA32OpProp_IntTarget | IA32OpProp_TestsCarryFlag),
            PROPERTY1(0)),
INSTRUCTION(CMOVG4RegReg, cmovg,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_0F__, 0x4f, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SourceRegisterInModRM | IA32OpProp_IntSource | IA32OpProp_IntTarget | IA32OpProp_TestsOverflowFlag | IA32OpProp_TestsSignFlag | IA32OpProp_TestsZeroFlag),
            PROPERTY1(0)),
INSTRUCTION(CMOVG8RegReg, cmovg,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX_W, ESCAPE_0F__, 0x4f, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SourceRegisterInModRM | IA32OpProp_TestsOverflowFlag | IA32OpProp_TestsSignFlag | IA32OpProp_TestsZeroFlag),
            PROPERTY1(IA32OpProp1_LongSource | IA32OpProp1_LongTarget)),
INSTRUCTION(CMOVGE4RegReg, cmovge,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_0F__, 0x4d, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SourceRegisterInModRM | IA32OpProp_IntSource | IA32OpProp_IntTarget | IA32OpProp_TestsOverflowFlag | IA32OpProp_TestsSignFlag),
            PROPERTY1(0)),
INSTRUCTION(CMOVGE8RegReg, cmovge,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX_W, ESCAPE_0F__, 0x4d, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SourceRegisterInModRM | IA32OpProp_TestsOverflowFlag | IA32OpProp_TestsSignFlag),
            PROPERTY1(IA32OpProp1_LongSource | IA32OpProp1_LongTarget)),
INSTRUCTION(CMOVL4RegReg, cmovl,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_0F__, 0x4c, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SourceRegisterInModRM | IA32OpProp_IntSource | IA32OpProp_IntTarget | IA32OpProp_TestsOverflowFlag | IA32OpProp_TestsSignFlag),
            PROPERTY1(0)),
INSTRUCTION(CMOVL8RegReg, cmovl,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX_W, ESCAPE_0F__, 0x4c, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SourceRegisterInModRM | IA32OpProp_TestsOverflowFlag | IA32OpProp_TestsSignFlag),
            PROPERTY1(IA32OpProp1_LongSource | IA32OpProp1_LongTarget)),
INSTRUCTION(CMOVLE4RegReg, cmovle,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_0F__, 0x4e, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SourceRegisterInModRM | IA32OpProp_IntSource | IA32OpProp_IntTarget | IA32OpProp_TestsOverflowFlag | IA32OpProp_TestsSignFlag | IA32OpProp_TestsZeroFlag),
            PROPERTY1(0)),
INSTRUCTION(CMOVLE8RegReg, cmovle,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX_W, ESCAPE_0F__, 0x4e, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SourceRegisterInModRM | IA32OpProp_TestsOverflowFlag | IA32OpProp_TestsSignFlag | IA32OpProp_TestsZeroFlag),
            PROPERTY1(IA32OpProp1_LongSource | IA32OpProp1_LongTarget)),
INSTRUCTION(CMOVE4RegReg, cmove,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_0F__, 0x44, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SourceRegisterInModRM | IA32OpProp_IntSource | IA32OpProp_IntTarget | IA32OpProp_TestsZeroFlag),
            PROPERTY1(0)),
INSTRUCTION(CMOVE8RegReg, cmove,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX_W, ESCAPE_0F__, 0x44, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SourceRegisterInModRM | IA32OpProp_TestsZeroFlag),
            PROPERTY1(IA32OpProp1_LongSource | IA32OpProp1_LongTarget)),
INSTRUCTION(CMOVNE4RegReg, cmovne,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_0F__, 0x45, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SourceRegisterInModRM | IA32OpProp_IntSource | IA32OpProp_IntTarget | IA32OpProp_TestsZeroFlag),
            PROPERTY1(0)),
INSTRUCTION(CMOVNE8RegReg, cmovne,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX_W, ESCAPE_0F__, 0x45, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SourceRegisterInModRM | IA32OpProp_TestsZeroFlag),
            PROPERTY1(IA32OpProp1_LongSource | IA32OpProp1_LongTarget)),
INSTRUCTION(CMOVS4RegReg, cmovs,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_0F__, 0x48, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SourceRegisterInModRM | IA32OpProp_IntSource | IA32OpProp_IntTarget | IA32OpProp_TestsSignFlag),
            PROPERTY1(0)),
INSTRUCTION(CMOVS8RegReg, cmovs,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX_W, ESCAPE_0F__, 0x48, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SourceRegisterInModRM | IA32OpProp_TestsSignFlag),
            PROPERTY1(IA32OpProp1_LongSource | IA32OpProp1_LongTarget)),
INSTRUCTION(MOV1RegImm1, mov,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xb0, 0, ModRM_NONE, Immediate_1),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterInOpcode | IA32OpProp_ByteTarget | IA32OpProp_ByteImmediate),
            PROPERTY1(0)),
INSTRUCTION(MOV2RegImm2, mov,
            BINARY(VEX_L___, VEX_vNONE, PREFIX_66, REX__, ESCAPE_____, 0xb8, 0, ModRM_NONE, Immediate_2),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterInOpcode | IA32OpProp_ShortTarget | IA32OpProp_ShortImmediate),
            PROPERTY1(0)),
INSTRUCTION(MOV4RegImm4, mov,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xb8, 0, ModRM_NONE, Immediate_4),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterInOpcode | IA32OpProp_IntTarget | IA32OpProp_IntImmediate),
            PROPERTY1(0)),
INSTRUCTION(MOV8RegImm4, mov,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX_W, ESCAPE_____, 0xc7, 0, ModRM_EXT_, Immediate_4),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterInOpcode | IA32OpProp_IntImmediate),
            PROPERTY1(IA32OpProp1_LongTarget)),
INSTRUCTION(MOV8RegImm64, mov,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX_W, ESCAPE_____, 0xb8, 0, ModRM_NONE, Immediate_8),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterInOpcode),
            PROPERTY1(IA32OpProp1_LongTarget | IA32OpProp1_LongImmediate)),
INSTRUCTION(MOVLPDRegMem, movlpd,
            BINARY(VEX_L128, VEX_vNONE, PREFIX_66, REX__, ESCAPE_0F__, 0x12, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_DoubleFP),
            PROPERTY1(IA32OpProp1_SourceIsMemRef | IA32OpProp1_XMMTarget)),
INSTRUCTION(MOVLPDMemReg, movlpd,
            BINARY(VEX_L128, VEX_vNONE, PREFIX_66, REX__, ESCAPE_0F__, 0x13, 0, ModRM_MR__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_DoubleFP),
            PROPERTY1(IA32OpProp1_XMMSource)),
INSTRUCTION(MOVDRegMem, movd,
            BINARY(VEX_L128, VEX_vNONE, PREFIX_66, REX__, ESCAPE_0F__, 0x6e, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget),
            PROPERTY1(IA32OpProp1_SourceIsMemRef | IA32OpProp1_XMMTarget)),
INSTRUCTION(MOVDMemReg, movd,
            BINARY(VEX_L128, VEX_vNONE, PREFIX_66, REX__, ESCAPE_0F__, 0x7e, 0, ModRM_MR__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget),
            PROPERTY1(IA32OpProp1_XMMSource)),
INSTRUCTION(MOVQRegMem, movq,
            BINARY(VEX_L128, VEX_vNONE, PREFIX_F3, REX__, ESCAPE_0F__, 0x7e, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SingleFP),
            PROPERTY1(IA32OpProp1_SourceIsMemRef | IA32OpProp1_XMMTarget)),
INSTRUCTION(MOVQMemReg, movq,
            BINARY(VEX_L128, VEX_vNONE, PREFIX_66, REX__, ESCAPE_0F__, 0xd6, 0, ModRM_MR__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SingleFP),
            PROPERTY1(IA32OpProp1_XMMSource)),
INSTRUCTION(MOVSB, movsb,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xa4, 0, ModRM_NONE, Immediate_0),
            PROPERTY0(0),
            PROPERTY1(0)),
INSTRUCTION(MOVSW, movsw,
            BINARY(VEX_L___, VEX_vNONE, PREFIX_66, REX__, ESCAPE_____, 0xa5, 0, ModRM_NONE, Immediate_0),
            PROPERTY0(0),
            PROPERTY1(0)),
INSTRUCTION(MOVSD, movsd,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xa5, 0, ModRM_NONE, Immediate_0),
            PROPERTY0(0),
            PROPERTY1(0)),
INSTRUCTION(MOVSQ, movsd,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xa5, 0, ModRM_NONE, Immediate_0),
            PROPERTY0(0),
            PROPERTY1(0)),
INSTRUCTION(MOVSXReg2Reg1, movsx,
            BINARY(VEX_L___, VEX_vNONE, PREFIX_66, REX__, ESCAPE_0F__, 0xbe, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SourceRegisterInModRM | IA32OpProp_ByteSource | IA32OpProp_ShortTarget),
            PROPERTY1(0)),
INSTRUCTION(MOVSXReg4Reg1, movsx,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_0F__, 0xbe, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SourceRegisterInModRM | IA32OpProp_ByteSource | IA32OpProp_IntTarget),
            PROPERTY1(0)),
INSTRUCTION(MOVSXReg8Reg1, movsx,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX_W, ESCAPE_0F__, 0xbe, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SourceRegisterInModRM | IA32OpProp_ByteSource),
            PROPERTY1(IA32OpProp1_LongTarget)),
INSTRUCTION(MOVSXReg4Reg2, movsx,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_0F__, 0xbf, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SourceRegisterInModRM | IA32OpProp_ShortSource | IA32OpProp_IntTarget),
            PROPERTY1(0)),
INSTRUCTION(MOVSXReg8Reg2, movsx,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX_W, ESCAPE_0F__, 0xbf, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SourceRegisterInModRM | IA32OpProp_ShortSource),
            PROPERTY1(IA32OpProp1_LongTarget)),
INSTRUCTION(MOVSXReg8Reg4, movsxd,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX_W, ESCAPE_____, 0x63, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SourceRegisterInModRM | IA32OpProp_IntSource),
            PROPERTY1(IA32OpProp1_LongTarget)),
INSTRUCTION(MOVSXReg2Mem1, movsx,
            BINARY(VEX_L___, VEX_vNONE, PREFIX_66, REX__, ESCAPE_0F__, 0xbe, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_ByteSource | IA32OpProp_ShortTarget),
            PROPERTY1(IA32OpProp1_SourceIsMemRef)),
INSTRUCTION(MOVSXReg4Mem1, movsx,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_0F__, 0xbe, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_ByteSource | IA32OpProp_IntTarget),
            PROPERTY1(IA32OpProp1_SourceIsMemRef)),
INSTRUCTION(MOVSXReg8Mem1, movsx,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX_W, ESCAPE_0F__, 0xbe, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_ByteSource),
            PROPERTY1(IA32OpProp1_LongTarget | IA32OpProp1_SourceIsMemRef)),
INSTRUCTION(MOVSXReg4Mem2, movsx,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_0F__, 0xbf, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_ShortSource | IA32OpProp_IntTarget),
            PROPERTY1(IA32OpProp1_SourceIsMemRef)),
INSTRUCTION(MOVSXReg8Mem2, movsx,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX_W, ESCAPE_0F__, 0xbf, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_ShortSource),
            PROPERTY1(IA32OpProp1_LongTarget | IA32OpProp1_SourceIsMemRef)),
INSTRUCTION(MOVSXReg8Mem4, movsxd,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX_W, ESCAPE_____, 0x63, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_IntSource),
            PROPERTY1(IA32OpProp1_LongTarget | IA32OpProp1_SourceIsMemRef)),
INSTRUCTION(MOVZXReg2Reg1, movzx,
            BINARY(VEX_L___, VEX_vNONE, PREFIX_66, REX__, ESCAPE_0F__, 0xb6, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SourceRegisterInModRM | IA32OpProp_ByteSource | IA32OpProp_ShortTarget),
            PROPERTY1(0)),
INSTRUCTION(MOVZXReg4Reg1, movzx,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_0F__, 0xb6, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SourceRegisterInModRM | IA32OpProp_ByteSource | IA32OpProp_IntTarget),
            PROPERTY1(0)),
INSTRUCTION(MOVZXReg8Reg1, movzx,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX_W, ESCAPE_0F__, 0xb6, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SourceRegisterInModRM | IA32OpProp_ByteSource),
            PROPERTY1(IA32OpProp1_LongTarget)),
INSTRUCTION(MOVZXReg4Reg2, movzx,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_0F__, 0xb7, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SourceRegisterInModRM | IA32OpProp_ShortSource | IA32OpProp_IntTarget),
            PROPERTY1(0)),
INSTRUCTION(MOVZXReg8Reg2, movzx,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX_W, ESCAPE_0F__, 0xb7, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SourceRegisterInModRM | IA32OpProp_ShortSource),
            PROPERTY1(IA32OpProp1_LongTarget)),
INSTRUCTION(MOVZXReg8Reg4, mov,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x8b, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SourceRegisterInModRM | IA32OpProp_IntSource | IA32OpProp_IntTarget),
            PROPERTY1(0)),
INSTRUCTION(MOVZXReg2Mem1, movzx,
            BINARY(VEX_L___, VEX_vNONE, PREFIX_66, REX__, ESCAPE_0F__, 0xb6, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_ByteSource | IA32OpProp_ShortTarget),
            PROPERTY1(IA32OpProp1_SourceIsMemRef)),
INSTRUCTION(MOVZXReg4Mem1, movzx,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_0F__, 0xb6, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_ByteSource | IA32OpProp_IntTarget),
            PROPERTY1(IA32OpProp1_SourceIsMemRef)),
INSTRUCTION(MOVZXReg8Mem1, movzx,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX_W, ESCAPE_0F__, 0xb6, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_ByteSource),
            PROPERTY1(IA32OpProp1_LongTarget | IA32OpProp1_SourceIsMemRef)),
INSTRUCTION(MOVZXReg4Mem2, movzx,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_0F__, 0xb7, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_ShortSource | IA32OpProp_IntTarget),
            PROPERTY1(IA32OpProp1_SourceIsMemRef)),
INSTRUCTION(MOVZXReg8Mem2, movzx,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX_W, ESCAPE_0F__, 0xb7, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_ShortSource),
            PROPERTY1(IA32OpProp1_LongTarget | IA32OpProp1_SourceIsMemRef)),
INSTRUCTION(NEG1Reg, neg,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xf6, 3, ModRM_EXT_, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterInModRM | IA32OpProp_ByteTarget | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(0)),
INSTRUCTION(NEG2Reg, neg,
            BINARY(VEX_L___, VEX_vNONE, PREFIX_66, REX__, ESCAPE_____, 0xf7, 3, ModRM_EXT_, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterInModRM | IA32OpProp_ShortTarget | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(0)),
INSTRUCTION(NEG4Reg, neg,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xf7, 3, ModRM_EXT_, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterInModRM | IA32OpProp_IntTarget | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(0)),
INSTRUCTION(NEG8Reg, neg,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX_W, ESCAPE_____, 0xf7, 3, ModRM_EXT_, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterInModRM | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_LongTarget)),
INSTRUCTION(NEG1Mem, neg,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xf6, 3, ModRM_EXT_, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_ByteTarget | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SupportsLockPrefix | IA32OpProp1_SourceIsMemRef)),
INSTRUCTION(NEG2Mem, neg,
            BINARY(VEX_L___, VEX_vNONE, PREFIX_66, REX__, ESCAPE_____, 0xf7, 3, ModRM_EXT_, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_ShortTarget | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SupportsLockPrefix | IA32OpProp1_SourceIsMemRef)),
INSTRUCTION(NEG4Mem, neg,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xf7, 3, ModRM_EXT_, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_IntTarget | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SupportsLockPrefix | IA32OpProp1_SourceIsMemRef)),
INSTRUCTION(NEG8Mem, neg,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX_W, ESCAPE_____, 0xf7, 3, ModRM_EXT_, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SupportsLockPrefix | IA32OpProp1_LongTarget | IA32OpProp1_SourceIsMemRef)),
INSTRUCTION(NOT1Reg, not,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xf6, 2, ModRM_EXT_, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterInModRM | IA32OpProp_ByteTarget | IA32OpProp_UsesTarget),
            PROPERTY1(0)),
INSTRUCTION(NOT2Reg, not,
            BINARY(VEX_L___, VEX_vNONE, PREFIX_66, REX__, ESCAPE_____, 0xf7, 2, ModRM_EXT_, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterInModRM | IA32OpProp_ShortTarget | IA32OpProp_UsesTarget),
            PROPERTY1(0)),
INSTRUCTION(NOT4Reg, not,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xf7, 2, ModRM_EXT_, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterInModRM | IA32OpProp_IntTarget | IA32OpProp_UsesTarget),
            PROPERTY1(0)),
INSTRUCTION(NOT8Reg, not,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX_W, ESCAPE_____, 0xf7, 2, ModRM_EXT_, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterInModRM | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_LongTarget)),
INSTRUCTION(NOT1Mem, not,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xf6, 2, ModRM_EXT_, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_ByteTarget | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SupportsLockPrefix | IA32OpProp1_SourceIsMemRef)),
INSTRUCTION(NOT2Mem, not,
            BINARY(VEX_L___, VEX_vNONE, PREFIX_66, REX__, ESCAPE_____, 0xf7, 2, ModRM_EXT_, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_ShortTarget | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SupportsLockPrefix | IA32OpProp1_SourceIsMemRef)),
INSTRUCTION(NOT4Mem, not,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xf7, 2, ModRM_EXT_, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_IntTarget | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SupportsLockPrefix | IA32OpProp1_SourceIsMemRef)),
INSTRUCTION(NOT8Mem, not,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX_W, ESCAPE_____, 0xf7, 2, ModRM_EXT_, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SupportsLockPrefix | IA32OpProp1_SourceIsMemRef | IA32OpProp1_LongTarget)),
INSTRUCTION(OR1AccImm1, or,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x0c, 0, ModRM_NONE, Immediate_1),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterIgnored | IA32OpProp_ByteTarget | IA32OpProp_ByteImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest)),
INSTRUCTION(OR2AccImm2, or,
            BINARY(VEX_L___, VEX_vNONE, PREFIX_66, REX__, ESCAPE_____, 0x0d, 0, ModRM_NONE, Immediate_2),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterIgnored | IA32OpProp_ShortImmediate | IA32OpProp_ShortTarget | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest)),
INSTRUCTION(OR4AccImm4, or,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x0d, 0, ModRM_NONE, Immediate_4),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterIgnored | IA32OpProp_IntTarget | IA32OpProp_IntImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest)),
INSTRUCTION(OR8AccImm4, or,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX_W, ESCAPE_____, 0x0d, 0, ModRM_NONE, Immediate_4),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterIgnored | IA32OpProp_IntImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_LongTarget)),
INSTRUCTION(OR1RegImm1, or,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x80, 1, ModRM_EXT_, Immediate_1),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterInModRM | IA32OpProp_ByteTarget | IA32OpProp_ByteImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest)),
INSTRUCTION(OR2RegImm2, or,
            BINARY(VEX_L___, VEX_vNONE, PREFIX_66, REX__, ESCAPE_____, 0x81, 1, ModRM_EXT_, Immediate_2),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterInModRM | IA32OpProp_ShortTarget | IA32OpProp_ShortImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest)),
INSTRUCTION(OR2RegImms, or,
            BINARY(VEX_L___, VEX_vNONE, PREFIX_66, REX__, ESCAPE_____, 0x83, 1, ModRM_EXT_, Immediate_S),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterInModRM | IA32OpProp_ShortTarget | IA32OpProp_SignExtendImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest)),
INSTRUCTION(OR4RegImm4, or,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x81, 1, ModRM_EXT_, Immediate_4),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterInModRM | IA32OpProp_IntTarget | IA32OpProp_IntImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest)),
INSTRUCTION(OR8RegImm4, or,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX_W, ESCAPE_____, 0x81, 1, ModRM_EXT_, Immediate_4),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterInModRM | IA32OpProp_IntImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_LongTarget)),
INSTRUCTION(OR4RegImms, or,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x83, 1, ModRM_EXT_, Immediate_S),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterInModRM | IA32OpProp_IntTarget | IA32OpProp_SignExtendImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest)),
INSTRUCTION(OR8RegImms, or,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX_W, ESCAPE_____, 0x83, 1, ModRM_EXT_, Immediate_S),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterInModRM | IA32OpProp_SignExtendImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_LongTarget)),
INSTRUCTION(OR1MemImm1, or,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x80, 1, ModRM_EXT_, Immediate_1),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_ByteTarget | IA32OpProp_ByteImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SupportsLockPrefix)),
INSTRUCTION(OR2MemImm2, or,
            BINARY(VEX_L___, VEX_vNONE, PREFIX_66, REX__, ESCAPE_____, 0x81, 1, ModRM_EXT_, Immediate_2),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_ShortTarget | IA32OpProp_ShortImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SupportsLockPrefix)),
INSTRUCTION(OR2MemImms, or,
            BINARY(VEX_L___, VEX_vNONE, PREFIX_66, REX__, ESCAPE_____, 0x83, 1, ModRM_EXT_, Immediate_S),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_ShortTarget | IA32OpProp_SignExtendImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SupportsLockPrefix)),
INSTRUCTION(OR4MemImm4, or,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x81, 1, ModRM_EXT_, Immediate_4),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_IntTarget | IA32OpProp_IntImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SupportsLockPrefix)),
INSTRUCTION(OR8MemImm4, or,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX_W, ESCAPE_____, 0x81, 1, ModRM_EXT_, Immediate_4),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_IntImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SupportsLockPrefix | IA32OpProp1_LongTarget)),
INSTRUCTION(OR4MemImms, or,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x83, 1, ModRM_EXT_, Immediate_S),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_IntTarget | IA32OpProp_SignExtendImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SupportsLockPrefix)),
INSTRUCTION(LOR4MemImms, lock or,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x83, 1, ModRM_EXT_, Immediate_S),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_IntTarget | IA32OpProp_SignExtendImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_NeedsLockPrefix)),
INSTRUCTION(LOR4MemReg, lock or,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x09, 0, ModRM_MR__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_IntSource | IA32OpProp_IntTarget | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_NeedsLockPrefix)),
INSTRUCTION(LOR8MemReg, lock or,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX_W, ESCAPE_____, 0x09, 0, ModRM_MR__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_NeedsLockPrefix | IA32OpProp1_LongSource | IA32OpProp1_LongTarget)),
INSTRUCTION(OR8MemImms, or,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX_W, ESCAPE_____, 0x83, 1, ModRM_EXT_, Immediate_S),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SignExtendImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SupportsLockPrefix | IA32OpProp1_LongTarget)),
INSTRUCTION(OR1RegReg, or,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x0a, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SourceRegisterInModRM | IA32OpProp_ByteSource | IA32OpProp_ByteTarget | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest)),
INSTRUCTION(OR2RegReg, or,
            BINARY(VEX_L___, VEX_vNONE, PREFIX_66, REX__, ESCAPE_____, 0x0b, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SourceRegisterInModRM | IA32OpProp_ShortTarget | IA32OpProp_ShortSource | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest)),
INSTRUCTION(OR4RegReg, or,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x0b, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SourceRegisterInModRM | IA32OpProp_IntSource | IA32OpProp_IntTarget | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest)),
INSTRUCTION(OR8RegReg, or,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX_W, ESCAPE_____, 0x0b, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SourceRegisterInModRM | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_LongSource | IA32OpProp1_LongTarget)),
INSTRUCTION(OR1RegMem, or,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x0a, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_ByteSource | IA32OpProp_ByteTarget | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SourceIsMemRef)),
INSTRUCTION(OR2RegMem, or,
            BINARY(VEX_L___, VEX_vNONE, PREFIX_66, REX__, ESCAPE_____, 0x0b, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_ShortSource | IA32OpProp_ShortTarget | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SourceIsMemRef)),
INSTRUCTION(OR4RegMem, or,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x0b, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_IntSource | IA32OpProp_IntTarget | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SourceIsMemRef)),
INSTRUCTION(OR8RegMem, or,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX_W, ESCAPE_____, 0x0b, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SourceIsMemRef | IA32OpProp1_LongSource | IA32OpProp1_LongTarget)),
INSTRUCTION(OR1MemReg, or,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x08, 0, ModRM_MR__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_ByteSource | IA32OpProp_ByteTarget | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SupportsLockPrefix)),
INSTRUCTION(OR2MemReg, or,
            BINARY(VEX_L___, VEX_vNONE, PREFIX_66, REX__, ESCAPE_____, 0x09, 0, ModRM_MR__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_ShortSource | IA32OpProp_ShortTarget | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SupportsLockPrefix)),
INSTRUCTION(OR4MemReg, or,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x09, 0, ModRM_MR__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_IntSource | IA32OpProp_IntTarget | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SupportsLockPrefix)),
INSTRUCTION(OR8MemReg, or,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX_W, ESCAPE_____, 0x09, 0, ModRM_MR__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SupportsLockPrefix | IA32OpProp1_LongSource | IA32OpProp1_LongTarget)),
INSTRUCTION(PAUSE, pause,
            BINARY(VEX_L___, VEX_vNONE, PREFIX_F3, REX__, ESCAPE_____, 0x90, 0, ModRM_NONE, Immediate_0),
            PROPERTY0(0),
            PROPERTY1(0)),
INSTRUCTION(PACKUSWBRegReg, packuswb,
            BINARY(VEX_L128, VEX_vReg_, PREFIX_66, REX__, ESCAPE_0F__, 0x67, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_SourceRegisterInModRM),
            PROPERTY1(IA32OpProp1_XMMSource | IA32OpProp1_XMMTarget)),
INSTRUCTION(PUNPCKHBWRegReg, punpckhbw,
            BINARY(VEX_L128, VEX_vReg_, PREFIX_66, REX__, ESCAPE_0F__, 0x68, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_SourceRegisterInModRM),
            PROPERTY1(IA32OpProp1_XMMSource | IA32OpProp1_XMMTarget)),
INSTRUCTION(PUNPCKLBWRegReg, punpcklbw,
            BINARY(VEX_L128, VEX_vReg_, PREFIX_66, REX__, ESCAPE_0F__, 0x60, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_SourceRegisterInModRM),
            PROPERTY1(IA32OpProp1_XMMSource | IA32OpProp1_XMMTarget)),
INSTRUCTION(PCMPEQBRegReg, pcmpeqb,
            BINARY(VEX_L128, VEX_vReg_, PREFIX_66, REX__, ESCAPE_0F__, 0x74, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_SourceRegisterInModRM),
            PROPERTY1(IA32OpProp1_XMMSource | IA32OpProp1_XMMTarget)),
INSTRUCTION(VPCMPEQBRegReg, vpcmpeqb,
            BINARY(VEX_L256, VEX_vReg_, PREFIX_66, REX__, ESCAPE_0F__, 0x74, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_SourceRegisterInModRM),
            PROPERTY1(IA32OpProp1_XMMSource | IA32OpProp1_XMMTarget)),
INSTRUCTION(VPCMPEQBRegMem, vpcmpeqb,
            BINARY(VEX_L256, VEX_vReg_, PREFIX_66, REX__, ESCAPE_0F__, 0x74, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(0),
            PROPERTY1(IA32OpProp1_XMMTarget | IA32OpProp1_SourceIsMemRef)),
INSTRUCTION(PCMPEQWRegReg, pcmpeqw,
            BINARY(VEX_L128, VEX_vReg_, PREFIX_66, REX__, ESCAPE_0F__, 0x75, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_SourceRegisterInModRM),
            PROPERTY1(IA32OpProp1_XMMSource | IA32OpProp1_XMMTarget)),
INSTRUCTION(VPCMPEQWRegReg, vpcmpeqw,
            BINARY(VEX_L256, VEX_vReg_, PREFIX_66, REX__, ESCAPE_0F__, 0x75, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_SourceRegisterInModRM),
            PROPERTY1(IA32OpProp1_XMMSource | IA32OpProp1_XMMTarget)),
INSTRUCTION(VPCMPEQWRegMem, vpcmpeqw,
            BINARY(VEX_L256, VEX_vReg_, PREFIX_66, REX__, ESCAPE_0F__, 0x75, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(0),
            PROPERTY1(IA32OpProp1_XMMTarget | IA32OpProp1_SourceIsMemRef)),
INSTRUCTION(PCMPGTBRegReg, pcmpgtb,
            BINARY(VEX_L128, VEX_vReg_, PREFIX_66, REX__, ESCAPE_0F__, 0x64, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_SourceRegisterInModRM),
            PROPERTY1(IA32OpProp1_XMMSource | IA32OpProp1_XMMTarget)),
INSTRUCTION(PCMPGTWRegReg, pcmpgtw,
            BINARY(VEX_L128, VEX_vReg_, PREFIX_66, REX__, ESCAPE_0F__, 0x65, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_SourceRegisterInModRM),
            PROPERTY1(IA32OpProp1_XMMSource | IA32OpProp1_XMMTarget)),
INSTRUCTION(PMOVMSKB4RegReg, pmovmskb,
            BINARY(VEX_L128, VEX_vNONE, PREFIX_66, REX__, ESCAPE_0F__, 0xd7, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_SourceRegisterInModRM),
            PROPERTY1(IA32OpProp1_XMMSource)),
INSTRUCTION(VPMOVMSKB4RegReg, vpmovmskb,
            BINARY(VEX_L256, VEX_vNONE, PREFIX_66, REX__, ESCAPE_0F__, 0xd7, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_SourceRegisterInModRM),
            PROPERTY1(IA32OpProp1_XMMSource)),
INSTRUCTION(PMOVZXBDRegReg, pmovzxbd,
            BINARY(VEX_L128, VEX_vNONE, PREFIX_66, REX__, ESCAPE_0F38, 0x31, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_SourceRegisterInModRM),
            PROPERTY1(IA32OpProp1_XMMSource | IA32OpProp1_XMMTarget)),
INSTRUCTION(PMOVZXBDRegMem, pmovzxbd,
            BINARY(VEX_L128, VEX_vNONE, PREFIX_66, REX__, ESCAPE_0F38, 0x31, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(0),
            PROPERTY1(IA32OpProp1_SourceIsMemRef | IA32OpProp1_XMMTarget)),
INSTRUCTION(PMOVZXWDRegReg, pmovzxwd,
            BINARY(VEX_L128, VEX_vNONE, PREFIX_66, REX__, ESCAPE_0F38, 0x33, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_SourceRegisterInModRM),
            PROPERTY1(IA32OpProp1_XMMSource | IA32OpProp1_XMMTarget)),
INSTRUCTION(PMOVZXWDRegMem, pmovzxwd,
            BINARY(VEX_L128, VEX_vNONE, PREFIX_66, REX__, ESCAPE_0F38, 0x33, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(0),
            PROPERTY1(IA32OpProp1_SourceIsMemRef | IA32OpProp1_XMMTarget)),
INSTRUCTION(PMULLWRegReg, pmullw,
            BINARY(VEX_L128, VEX_vReg_, PREFIX_66, REX__, ESCAPE_0F__, 0xd5, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SourceRegisterInModRM | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_XMMSource | IA32OpProp1_XMMTarget)),
INSTRUCTION(PMULLWRegMem, pmullw,
            BINARY(VEX_L128, VEX_vReg_, PREFIX_66, REX__, ESCAPE_0F__, 0xd5, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SourceIsMemRef | IA32OpProp1_XMMTarget)),
INSTRUCTION(PMULLDRegReg, pmulld,
            BINARY(VEX_L128, VEX_vReg_, PREFIX_66, REX__, ESCAPE_0F38, 0x40, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SourceRegisterInModRM | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_XMMSource | IA32OpProp1_XMMTarget)),
INSTRUCTION(PMULLDRegMem, pmulld,
            BINARY(VEX_L128, VEX_vReg_, PREFIX_66, REX__, ESCAPE_0F38, 0x40, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SourceIsMemRef | IA32OpProp1_XMMTarget)),
INSTRUCTION(PADDBRegReg, paddb,
            BINARY(VEX_L128, VEX_vReg_, PREFIX_66, REX__, ESCAPE_0F__, 0xfc, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SourceRegisterInModRM | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_XMMSource | IA32OpProp1_XMMTarget)),
INSTRUCTION(PADDBRegMem, paddb,
            BINARY(VEX_L128, VEX_vReg_, PREFIX_66, REX__, ESCAPE_0F__, 0xfc, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SourceRegisterInModRM | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SourceIsMemRef | IA32OpProp1_XMMTarget)),
INSTRUCTION(PADDWRegReg, paddw,
            BINARY(VEX_L128, VEX_vReg_, PREFIX_66, REX__, ESCAPE_0F__, 0xfd, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SourceRegisterInModRM | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_XMMSource | IA32OpProp1_XMMTarget)),
INSTRUCTION(PADDWRegMem, paddw,
            BINARY(VEX_L128, VEX_vReg_, PREFIX_66, REX__, ESCAPE_0F__, 0xfd, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SourceRegisterInModRM | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SourceIsMemRef | IA32OpProp1_XMMTarget)),
INSTRUCTION(PADDDRegReg, paddd,
            BINARY(VEX_L128, VEX_vReg_, PREFIX_66, REX__, ESCAPE_0F__, 0xfe, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SourceRegisterInModRM | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_XMMSource | IA32OpProp1_XMMTarget)),
INSTRUCTION(PADDDRegMem, paddd,
            BINARY(VEX_L128, VEX_vReg_, PREFIX_66, REX__, ESCAPE_0F__, 0xfe, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SourceRegisterInModRM | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SourceIsMemRef | IA32OpProp1_XMMTarget)),
INSTRUCTION(PADDQRegReg, paddq,
            BINARY(VEX_L128, VEX_vReg_, PREFIX_66, REX__, ESCAPE_0F__, 0xd4, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SourceRegisterInModRM | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_XMMSource | IA32OpProp1_XMMTarget)),
INSTRUCTION(PADDQRegMem, paddq,
            BINARY(VEX_L128, VEX_vReg_, PREFIX_66, REX__, ESCAPE_0F__, 0xd4, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SourceRegisterInModRM | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SourceIsMemRef | IA32OpProp1_XMMTarget)),
INSTRUCTION(PSUBBRegReg, psubb,
            BINARY(VEX_L128, VEX_vReg_, PREFIX_66, REX__, ESCAPE_0F__, 0xf8, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SourceRegisterInModRM | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_XMMSource | IA32OpProp1_XMMTarget)),
INSTRUCTION(PSUBBRegMem, psubb,
            BINARY(VEX_L128, VEX_vReg_, PREFIX_66, REX__, ESCAPE_0F__, 0xf8, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SourceRegisterInModRM | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SourceIsMemRef | IA32OpProp1_XMMTarget)),
INSTRUCTION(PSUBWRegReg, psubw,
            BINARY(VEX_L128, VEX_vReg_, PREFIX_66, REX__, ESCAPE_0F__, 0xf9, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SourceRegisterInModRM | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_XMMSource | IA32OpProp1_XMMTarget)),
INSTRUCTION(PSUBWRegMem, psubw,
            BINARY(VEX_L128, VEX_vReg_, PREFIX_66, REX__, ESCAPE_0F__, 0xf9, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SourceRegisterInModRM | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SourceIsMemRef | IA32OpProp1_XMMTarget)),
INSTRUCTION(PSUBDRegReg, psubd,
            BINARY(VEX_L128, VEX_vReg_, PREFIX_66, REX__, ESCAPE_0F__, 0xfa, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SourceRegisterInModRM | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_XMMSource | IA32OpProp1_XMMTarget)),
INSTRUCTION(PSUBDRegMem, psubd,
            BINARY(VEX_L128, VEX_vReg_, PREFIX_66, REX__, ESCAPE_0F__, 0xfa, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SourceRegisterInModRM | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SourceIsMemRef | IA32OpProp1_XMMTarget)),
INSTRUCTION(PSUBQRegReg, psubq,
            BINARY(VEX_L128, VEX_vReg_, PREFIX_66, REX__, ESCAPE_0F__, 0xfb, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SourceRegisterInModRM | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_XMMSource | IA32OpProp1_XMMTarget)),
INSTRUCTION(PSUBQRegMem, psubq,
            BINARY(VEX_L128, VEX_vReg_, PREFIX_66, REX__, ESCAPE_0F__, 0xfb, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SourceRegisterInModRM | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SourceIsMemRef | IA32OpProp1_XMMTarget)),
INSTRUCTION(PANDRegReg, pand,
            BINARY(VEX_L128, VEX_vReg_, PREFIX_66, REX__, ESCAPE_0F__, 0xdb, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SourceRegisterInModRM | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_XMMSource | IA32OpProp1_XMMTarget)),
INSTRUCTION(PANDRegMem, pand,
            BINARY(VEX_L128, VEX_vReg_, PREFIX_66, REX__, ESCAPE_0F__, 0xdb, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SourceIsMemRef | IA32OpProp1_XMMTarget)),
INSTRUCTION(PORRegReg, por,
            BINARY(VEX_L128, VEX_vReg_, PREFIX_66, REX__, ESCAPE_0F__, 0xeb, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SourceRegisterInModRM | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_XMMSource | IA32OpProp1_XMMTarget)),
INSTRUCTION(PORRegMem, por,
            BINARY(VEX_L128, VEX_vReg_, PREFIX_66, REX__, ESCAPE_0F__, 0xeb, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SourceRegisterInModRM | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SourceIsMemRef | IA32OpProp1_XMMTarget)),
INSTRUCTION(PXORRegReg, pxor,
            BINARY(VEX_L128, VEX_vReg_, PREFIX_66, REX__, ESCAPE_0F__, 0xef, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SourceRegisterInModRM | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_XMMSource | IA32OpProp1_XMMTarget)),
INSTRUCTION(PXORRegMem, pxor,
            BINARY(VEX_L128, VEX_vReg_, PREFIX_66, REX__, ESCAPE_0F__, 0xef, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SourceIsMemRef | IA32OpProp1_XMMTarget)),
INSTRUCTION(PTESTRegReg, ptest,
            BINARY(VEX_L___, VEX_vReg_, PREFIX_66, REX__, ESCAPE_0F38, 0x17, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SourceRegisterInModRM | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_XMMSource | IA32OpProp1_XMMTarget)),
INSTRUCTION(PANDNRegReg, pandn,
            BINARY(VEX_L128, VEX_vReg_, PREFIX_66, REX__, ESCAPE_0F__, 0xdf, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SourceRegisterInModRM | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_XMMSource | IA32OpProp1_XMMTarget)),
INSTRUCTION(PEXTRDRegReg, pextrd,
            BINARY(VEX_L128, VEX_vNONE, PREFIX_66, REX__, ESCAPE_0F3A, 0x16, 0, ModRM_MR__, Immediate_8),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterInModRM | IA32OpProp_IntTarget),
            PROPERTY1(IA32OpProp1_XMMSource)),
INSTRUCTION(PEXTRQRegReg, pextrq,
            BINARY(VEX_L128, VEX_vNONE, PREFIX_66, REX_W, ESCAPE_0F3A, 0x16, 0, ModRM_MR__, Immediate_8),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterInModRM),
            PROPERTY1(IA32OpProp1_XMMSource | IA32OpProp1_LongTarget)),
INSTRUCTION(PSHUFBRegReg, pshufb,
            BINARY(VEX_L128, VEX_vReg_, PREFIX_66, REX__, ESCAPE_0F38, 0x00, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SourceRegisterInModRM | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_XMMSource | IA32OpProp1_XMMTarget)),
INSTRUCTION(PSHUFBRegMem, pshufb,
            BINARY(VEX_L128, VEX_vReg_, PREFIX_66, REX__, ESCAPE_0F38, 0x00, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SourceIsMemRef | IA32OpProp1_XMMTarget)),
INSTRUCTION(PSHUFDRegRegImm1, pshufd,
            BINARY(VEX_L128, VEX_vNONE, PREFIX_66, REX__, ESCAPE_0F__, 0x70, 0, ModRM_RM__, Immediate_1),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_ByteImmediate | IA32OpProp_SourceRegisterInModRM | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_XMMSource | IA32OpProp1_XMMTarget)),
INSTRUCTION(PSHUFDRegMemImm1, pshufd,
            BINARY(VEX_L128, VEX_vNONE, PREFIX_66, REX__, ESCAPE_0F__, 0x70, 0, ModRM_RM__, Immediate_1),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_ByteImmediate | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SourceIsMemRef | IA32OpProp1_XMMTarget)),
INSTRUCTION(PSRLDQRegImm1, psrldq,
            BINARY(VEX_L128, VEX_vReg_, PREFIX_66, REX__, ESCAPE_0F__, 0x73, 3, ModRM_EXT_, Immediate_1),
            PROPERTY0(IA32OpProp_TargetRegisterInModRM | IA32OpProp_ByteImmediate | IA32OpProp_ModifiesTarget | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_XMMSource | IA32OpProp1_XMMTarget)),
INSTRUCTION(PMOVZXxmm18Reg, pmovzx,
            BINARY(VEX_L128, VEX_vNONE, PREFIX_66, REX__, ESCAPE_0F38, 0x30, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_UsesTarget | IA32OpProp_SourceRegisterInModRM),
            PROPERTY1(IA32OpProp1_XMMTarget)),
INSTRUCTION(POPCNT4RegReg, popcnt,
            BINARY(VEX_L___, VEX_vNONE, PREFIX_F3, REX__, ESCAPE_0F__, 0xb8, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_IntSource | IA32OpProp_IntTarget | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_SourceRegisterInModRM | IA32OpProp_SingleFP | IA32OpProp_UsesTarget),
            PROPERTY1(0)),
INSTRUCTION(POPCNT8RegReg, popcnt,
            BINARY(VEX_L___, VEX_vNONE, PREFIX_F3, REX_W, ESCAPE_0F__, 0xb8, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_SourceRegisterInModRM | IA32OpProp_SingleFP),
            PROPERTY1(IA32OpProp1_LongSource)),
INSTRUCTION(POPReg, pop,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x58, 0, ModRM_NONE, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterInOpcode),
            PROPERTY1(IA32OpProp1_LongTarget | IA32OpProp1_PopOp)),
INSTRUCTION(POPMem, pop,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x8f, 0, ModRM_MR__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget),
            PROPERTY1(IA32OpProp1_LongTarget | IA32OpProp1_PopOp)),
INSTRUCTION(PUSHImms, push,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x6a, 0, ModRM_NONE, Immediate_S),
            PROPERTY0(IA32OpProp_SignExtendImmediate),
            PROPERTY1(IA32OpProp1_PushOp)),
INSTRUCTION(PUSHImm4, push,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x68, 0, ModRM_NONE, Immediate_4),
            PROPERTY0(IA32OpProp_IntImmediate),
            PROPERTY1(IA32OpProp1_PushOp)),
INSTRUCTION(PUSHReg, push,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x50, 0, ModRM_NONE, Immediate_0),
            PROPERTY0(IA32OpProp_UsesTarget | IA32OpProp_TargetRegisterInOpcode),
            PROPERTY1(IA32OpProp1_LongTarget | IA32OpProp1_PushOp)),
INSTRUCTION(PUSHRegLong, push,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xff, 6, ModRM_EXT_, Immediate_0),
            PROPERTY0(IA32OpProp_UsesTarget | IA32OpProp_TargetRegisterInOpcode),
            PROPERTY1(IA32OpProp1_LongTarget | IA32OpProp1_PushOp)),
INSTRUCTION(PUSHMem, push,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xff, 6, ModRM_EXT_, Immediate_0),
            PROPERTY0(IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_LongTarget | IA32OpProp1_PushOp | IA32OpProp1_SourceIsMemRef)),
INSTRUCTION(RCL1RegImm1, rcl,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xc0, 2, ModRM_EXT_, Immediate_1),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterInModRM | IA32OpProp_ByteTarget | IA32OpProp_ByteImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_TestsCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_RotateOp)),
INSTRUCTION(RCL4RegImm1, rcl,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xc1, 2, ModRM_EXT_, Immediate_1),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterInModRM | IA32OpProp_IntTarget | IA32OpProp_ByteImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_TestsCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_RotateOp)),
INSTRUCTION(RCR1RegImm1, rcr,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xc0, 3, ModRM_EXT_, Immediate_1),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterInModRM | IA32OpProp_ByteTarget | IA32OpProp_ByteImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_TestsCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_RotateOp)),
INSTRUCTION(RCR4RegImm1, rcr,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xc1, 3, ModRM_EXT_, Immediate_1),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterInModRM | IA32OpProp_IntTarget | IA32OpProp_ByteImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_TestsCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_RotateOp)),
INSTRUCTION(REPMOVSB, rep movsb,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xa4, 0, ModRM_NONE, Immediate_0),
            PROPERTY0(0),
            PROPERTY1(IA32OpProp1_NeedsRepPrefix)),
INSTRUCTION(REPMOVSW, rep movsw,
            BINARY(VEX_L___, VEX_vNONE, PREFIX_66, REX__, ESCAPE_____, 0xa5, 0, ModRM_NONE, Immediate_0),
            PROPERTY0(0),
            PROPERTY1(IA32OpProp1_NeedsRepPrefix)),
INSTRUCTION(REPMOVSD, rep movsd,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xa5, 0, ModRM_NONE, Immediate_0),
            PROPERTY0(0),
            PROPERTY1(IA32OpProp1_NeedsRepPrefix)),
INSTRUCTION(REPMOVSQ, rep movsq,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX_W, ESCAPE_____, 0xa5, 0, ModRM_NONE, Immediate_0),
            PROPERTY0(0),
            PROPERTY1(IA32OpProp1_NeedsRepPrefix)),
INSTRUCTION(REPECMPSB, repe cmpsb,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xa6, 0, ModRM_NONE, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag),
            PROPERTY1(IA32OpProp1_NeedsRepPrefix)),
INSTRUCTION(REPECMPSW, repe cmpsw,
            BINARY(VEX_L___, VEX_vNONE, PREFIX_66, REX__, ESCAPE_____, 0xa7, 0, ModRM_NONE, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag),
            PROPERTY1(IA32OpProp1_NeedsRepPrefix)),
INSTRUCTION(REPECMPSD, repe cmpsd,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xa7, 0, ModRM_NONE, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag),
            PROPERTY1(IA32OpProp1_NeedsRepPrefix)),
INSTRUCTION(REPECMPSQ, repe cmpsq,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX_W, ESCAPE_____, 0xa7, 0, ModRM_NONE, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag),
            PROPERTY1(IA32OpProp1_NeedsRepPrefix)),
INSTRUCTION(REPSTOSB, rep stosb,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xaa, 0, ModRM_NONE, Immediate_0),
            PROPERTY0(0),
            PROPERTY1(IA32OpProp1_NeedsRepPrefix)),
INSTRUCTION(REPSTOSW, rep stosw,
            BINARY(VEX_L___, VEX_vNONE, PREFIX_66, REX__, ESCAPE_____, 0xab, 0, ModRM_NONE, Immediate_0),
            PROPERTY0(0),
            PROPERTY1(IA32OpProp1_NeedsRepPrefix)),
INSTRUCTION(REPSTOSD, rep stosd,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xab, 0, ModRM_NONE, Immediate_0),
            PROPERTY0(0),
            PROPERTY1(IA32OpProp1_NeedsRepPrefix)),
INSTRUCTION(REPSTOSQ, rep stosq,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX_W, ESCAPE_____, 0xab, 0, ModRM_NONE, Immediate_0),
            PROPERTY0(0),
            PROPERTY1(IA32OpProp1_NeedsRepPrefix)),
INSTRUCTION(RET, ret,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xc3, 0, ModRM_NONE, Immediate_0),
            PROPERTY0(0),
            PROPERTY1(0)),
INSTRUCTION(RETImm2, ret,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xc2, 0, ModRM_NONE, Immediate_2),
            PROPERTY0(IA32OpProp_ShortImmediate),
            PROPERTY1(0)),
INSTRUCTION(ROL8Reg1, rol,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX_W, ESCAPE_____, 0xd1, 0, ModRM_EXT_, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterInModRM | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_RotateOp | IA32OpProp1_LongTarget)),
INSTRUCTION(ROL1RegImm1, rol,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xc0, 0, ModRM_EXT_, Immediate_1),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterInModRM | IA32OpProp_ByteTarget | IA32OpProp_ByteImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_RotateOp)),
INSTRUCTION(ROL2RegImm1, rol,
            BINARY(VEX_L___, VEX_vNONE, PREFIX_66, REX__, ESCAPE_____, 0xc1, 0, ModRM_EXT_, Immediate_1),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterInModRM | IA32OpProp_ShortTarget | IA32OpProp_ByteImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_RotateOp)),
INSTRUCTION(ROL4RegImm1, rol,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xc1, 0, ModRM_EXT_, Immediate_1),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterInModRM | IA32OpProp_IntTarget | IA32OpProp_ByteImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_RotateOp)),
INSTRUCTION(ROL8RegImm1, rol,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX_W, ESCAPE_____, 0xc1, 0, ModRM_EXT_, Immediate_1),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterInModRM | IA32OpProp_ByteImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_RotateOp | IA32OpProp1_LongTarget)),
INSTRUCTION(ROL4RegCL, rol,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xd3, 0, ModRM_EXT_, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterInModRM | IA32OpProp_SourceRegisterIgnored | IA32OpProp_IntTarget | IA32OpProp_ByteSource | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_RotateOp)),
INSTRUCTION(ROL8RegCL, rol,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX_W, ESCAPE_____, 0xd3, 0, ModRM_EXT_, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterInModRM | IA32OpProp_SourceRegisterIgnored | IA32OpProp_ByteSource | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_RotateOp | IA32OpProp1_LongTarget)),
INSTRUCTION(ROR8Reg1, ror,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX_W, ESCAPE_____, 0xd1, 1, ModRM_EXT_, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterInModRM | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_RotateOp | IA32OpProp1_LongTarget)),
INSTRUCTION(ROR1RegImm1, ror,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xc0, 1, ModRM_EXT_, Immediate_1),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterInModRM | IA32OpProp_ByteTarget | IA32OpProp_ByteImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_RotateOp)),
INSTRUCTION(ROR2RegImm1, ror,
            BINARY(VEX_L___, VEX_vNONE, PREFIX_66, REX__, ESCAPE_____, 0xc1, 1, ModRM_EXT_, Immediate_1),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterInModRM | IA32OpProp_ShortTarget | IA32OpProp_ByteImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_RotateOp)),
INSTRUCTION(ROR4RegImm1, ror,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xc1, 1, ModRM_EXT_, Immediate_1),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterInModRM | IA32OpProp_IntTarget | IA32OpProp_ByteImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_RotateOp)),
INSTRUCTION(ROR8RegImm1, ror,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX_W, ESCAPE_____, 0xc1, 1, ModRM_EXT_, Immediate_1),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterInModRM | IA32OpProp_ByteImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_RotateOp | IA32OpProp1_LongTarget)),
INSTRUCTION(SAHF, sahf,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x9e, 0, ModRM_NONE, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag),
            PROPERTY1(IA32OpProp1_IsIA32Only)),
INSTRUCTION(SHL1RegImm1, shl,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xc0, 4, ModRM_EXT_, Immediate_1),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterInModRM | IA32OpProp_ByteTarget | IA32OpProp_ByteImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_ShiftOp)),
INSTRUCTION(SHL1RegCL, shl,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xd2, 4, ModRM_EXT_, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterInModRM | IA32OpProp_SourceRegisterIgnored | IA32OpProp_ByteSource | IA32OpProp_ByteTarget | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_ShiftOp)),
INSTRUCTION(SHL2RegImm1, shl,
            BINARY(VEX_L___, VEX_vNONE, PREFIX_66, REX__, ESCAPE_____, 0xc1, 4, ModRM_EXT_, Immediate_1),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterInModRM | IA32OpProp_ShortTarget | IA32OpProp_ByteImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_ShiftOp)),
INSTRUCTION(SHL2RegCL, shl,
            BINARY(VEX_L___, VEX_vNONE, PREFIX_66, REX__, ESCAPE_____, 0xd3, 4, ModRM_EXT_, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterInModRM | IA32OpProp_SourceRegisterIgnored | IA32OpProp_ByteSource | IA32OpProp_ShortTarget | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_ShiftOp)),
INSTRUCTION(SHL4RegImm1, shl,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xc1, 4, ModRM_EXT_, Immediate_1),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterInModRM | IA32OpProp_IntTarget | IA32OpProp_ByteImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_ShiftOp)),
INSTRUCTION(SHL8RegImm1, shl,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX_W, ESCAPE_____, 0xc1, 4, ModRM_EXT_, Immediate_1),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterInModRM | IA32OpProp_ByteImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_ShiftOp | IA32OpProp1_LongTarget)),
INSTRUCTION(SHL4RegCL, shl,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xd3, 4, ModRM_EXT_, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterInModRM | IA32OpProp_SourceRegisterIgnored | IA32OpProp_ByteSource | IA32OpProp_IntTarget | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_ShiftOp)),
INSTRUCTION(SHL8RegCL, shl,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX_W, ESCAPE_____, 0xd3, 4, ModRM_EXT_, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterInModRM | IA32OpProp_SourceRegisterIgnored | IA32OpProp_ByteSource | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_ShiftOp | IA32OpProp1_LongTarget)),
INSTRUCTION(SHL1MemImm1, shl,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xc0, 4, ModRM_EXT_, Immediate_1),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_ByteTarget | IA32OpProp_ByteImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_ShiftOp)),
INSTRUCTION(SHL1MemCL, shl,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xd2, 4, ModRM_EXT_, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SourceRegisterIgnored | IA32OpProp_ByteSource | IA32OpProp_ByteTarget | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_ShiftOp)),
INSTRUCTION(SHL2MemImm1, shl,
            BINARY(VEX_L___, VEX_vNONE, PREFIX_66, REX__, ESCAPE_____, 0xc1, 4, ModRM_EXT_, Immediate_1),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_ShortTarget | IA32OpProp_ByteImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_ShiftOp)),
INSTRUCTION(SHL2MemCL, shl,
            BINARY(VEX_L___, VEX_vNONE, PREFIX_66, REX__, ESCAPE_____, 0xd3, 4, ModRM_EXT_, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SourceRegisterIgnored | IA32OpProp_ByteSource | IA32OpProp_ShortTarget | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_ShiftOp)),
INSTRUCTION(SHL4MemImm1, shl,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xc1, 4, ModRM_EXT_, Immediate_1),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_IntTarget | IA32OpProp_ByteImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_ShiftOp)),
INSTRUCTION(SHL8MemImm1, shl,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX_W, ESCAPE_____, 0xc1, 4, ModRM_EXT_, Immediate_1),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_ByteImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_ShiftOp | IA32OpProp1_LongTarget)),
INSTRUCTION(SHL4MemCL, shl,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xd3, 4, ModRM_EXT_, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SourceRegisterIgnored | IA32OpProp_ByteSource | IA32OpProp_IntTarget | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_ShiftOp)),
INSTRUCTION(SHL8MemCL, shl,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX_W, ESCAPE_____, 0xd3, 4, ModRM_EXT_, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SourceRegisterIgnored | IA32OpProp_ByteSource | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_ShiftOp | IA32OpProp1_LongTarget)),
INSTRUCTION(SHR1RegImm1, shr,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xc0, 5, ModRM_EXT_, Immediate_1),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterInModRM | IA32OpProp_ByteTarget | IA32OpProp_ByteImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_ShiftOp)),
INSTRUCTION(SHR1RegCL, shr,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xd2, 5, ModRM_EXT_, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterInModRM | IA32OpProp_SourceRegisterIgnored | IA32OpProp_ByteSource | IA32OpProp_ByteTarget | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_ShiftOp)),
INSTRUCTION(SHR2RegImm1, shr,
            BINARY(VEX_L___, VEX_vNONE, PREFIX_66, REX__, ESCAPE_____, 0xc1, 5, ModRM_EXT_, Immediate_1),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterInModRM | IA32OpProp_ShortTarget | IA32OpProp_ByteImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_ShiftOp)),
INSTRUCTION(SHR2RegCL, shr,
            BINARY(VEX_L___, VEX_vNONE, PREFIX_66, REX__, ESCAPE_____, 0xd3, 5, ModRM_EXT_, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterInModRM | IA32OpProp_SourceRegisterIgnored | IA32OpProp_ShortTarget | IA32OpProp_ByteSource | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_ShiftOp)),
INSTRUCTION(SHR4Reg1, shr,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xd1, 5, ModRM_EXT_, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterInModRM | IA32OpProp_IntTarget | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_ShiftOp)),
INSTRUCTION(SHR8Reg1, shr,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX_W, ESCAPE_____, 0xd1, 5, ModRM_EXT_, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterInModRM | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_ShiftOp | IA32OpProp1_LongTarget)),
INSTRUCTION(SHR4RegImm1, shr,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xc1, 5, ModRM_EXT_, Immediate_1),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterInModRM | IA32OpProp_IntTarget | IA32OpProp_ByteImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_ShiftOp)),
INSTRUCTION(SHR8RegImm1, shr,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX_W, ESCAPE_____, 0xc1, 5, ModRM_EXT_, Immediate_1),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterInModRM | IA32OpProp_ByteImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_ShiftOp | IA32OpProp1_LongTarget)),
INSTRUCTION(SHR4RegCL, shr,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xd3, 5, ModRM_EXT_, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterInModRM | IA32OpProp_SourceRegisterIgnored | IA32OpProp_IntTarget | IA32OpProp_ByteSource | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_ShiftOp)),
INSTRUCTION(SHR8RegCL, shr,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX_W, ESCAPE_____, 0xd3, 5, ModRM_EXT_, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterInModRM | IA32OpProp_SourceRegisterIgnored | IA32OpProp_ByteSource | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_ShiftOp | IA32OpProp1_LongTarget)),
INSTRUCTION(SHR1MemImm1, shr,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xc0, 5, ModRM_EXT_, Immediate_1),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_ByteTarget | IA32OpProp_ByteImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_ShiftOp)),
INSTRUCTION(SHR1MemCL, shr,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xd2, 5, ModRM_EXT_, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SourceRegisterIgnored | IA32OpProp_ByteSource | IA32OpProp_ByteTarget | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_ShiftOp)),
INSTRUCTION(SHR2MemImm1, shr,
            BINARY(VEX_L___, VEX_vNONE, PREFIX_66, REX__, ESCAPE_____, 0xc1, 5, ModRM_EXT_, Immediate_1),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_ShortTarget | IA32OpProp_ByteImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_ShiftOp)),
INSTRUCTION(SHR2MemCL, shr,
            BINARY(VEX_L___, VEX_vNONE, PREFIX_66, REX__, ESCAPE_____, 0xd3, 5, ModRM_EXT_, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SourceRegisterIgnored | IA32OpProp_ByteSource | IA32OpProp_ShortTarget | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_ShiftOp)),
INSTRUCTION(SHR4MemImm1, shr,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xc1, 5, ModRM_EXT_, Immediate_1),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_IntTarget | IA32OpProp_ByteImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_ShiftOp)),
INSTRUCTION(SHR8MemImm1, shr,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX_W, ESCAPE_____, 0xc1, 5, ModRM_EXT_, Immediate_1),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_ByteImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_ShiftOp | IA32OpProp1_LongTarget)),
INSTRUCTION(SHR4MemCL, shr,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xd3, 5, ModRM_EXT_, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SourceRegisterIgnored | IA32OpProp_ByteSource | IA32OpProp_IntTarget | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_ShiftOp)),
INSTRUCTION(SHR8MemCL, shr,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX_W, ESCAPE_____, 0xd3, 5, ModRM_EXT_, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SourceRegisterIgnored | IA32OpProp_ByteSource | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_ShiftOp | IA32OpProp1_LongTarget)),
INSTRUCTION(SAR1RegImm1, sar,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xc0, 7, ModRM_EXT_, Immediate_1),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterInModRM | IA32OpProp_ByteTarget | IA32OpProp_ByteImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_ShiftOp)),
INSTRUCTION(SAR1RegCL, sar,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xd2, 7, ModRM_EXT_, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterInModRM | IA32OpProp_SourceRegisterIgnored | IA32OpProp_ByteSource | IA32OpProp_ByteTarget | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_ShiftOp)),
INSTRUCTION(SAR2RegImm1, sar,
            BINARY(VEX_L___, VEX_vNONE, PREFIX_66, REX__, ESCAPE_____, 0xc1, 7, ModRM_EXT_, Immediate_1),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterInModRM | IA32OpProp_ShortTarget | IA32OpProp_ByteImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_ShiftOp)),
INSTRUCTION(SAR2RegCL, sar,
            BINARY(VEX_L___, VEX_vNONE, PREFIX_66, REX__, ESCAPE_____, 0xd3, 7, ModRM_EXT_, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterInModRM | IA32OpProp_SourceRegisterIgnored | IA32OpProp_ByteSource | IA32OpProp_ShortTarget | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_ShiftOp)),
INSTRUCTION(SAR4RegImm1, sar,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xc1, 7, ModRM_EXT_, Immediate_1),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterInModRM | IA32OpProp_IntTarget | IA32OpProp_ByteImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_ShiftOp)),
INSTRUCTION(SAR8RegImm1, sar,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX_W, ESCAPE_____, 0xc1, 7, ModRM_EXT_, Immediate_1),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterInModRM | IA32OpProp_ByteImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_ShiftOp | IA32OpProp1_LongTarget)),
INSTRUCTION(SAR4RegCL, sar,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xd3, 7, ModRM_EXT_, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterInModRM | IA32OpProp_SourceRegisterIgnored | IA32OpProp_ByteSource | IA32OpProp_IntTarget | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_ShiftOp)),
INSTRUCTION(SAR8RegCL, sar,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX_W, ESCAPE_____, 0xd3, 7, ModRM_EXT_, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterInModRM | IA32OpProp_SourceRegisterIgnored | IA32OpProp_ByteSource | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_ShiftOp | IA32OpProp1_LongTarget)),
INSTRUCTION(SAR1MemImm1, sar,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xc0, 7, ModRM_EXT_, Immediate_1),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_ByteTarget | IA32OpProp_ByteImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_ShiftOp)),
INSTRUCTION(SAR1MemCL, sar,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xd2, 7, ModRM_EXT_, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SourceRegisterIgnored | IA32OpProp_ByteSource | IA32OpProp_ByteTarget | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_ShiftOp)),
INSTRUCTION(SAR2MemImm1, sar,
            BINARY(VEX_L___, VEX_vNONE, PREFIX_66, REX__, ESCAPE_____, 0xc1, 7, ModRM_EXT_, Immediate_1),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_ShortTarget | IA32OpProp_ByteImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_ShiftOp)),
INSTRUCTION(SAR2MemCL, sar,
            BINARY(VEX_L___, VEX_vNONE, PREFIX_66, REX__, ESCAPE_____, 0xd3, 7, ModRM_EXT_, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SourceRegisterIgnored | IA32OpProp_ByteSource | IA32OpProp_ShortTarget | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_ShiftOp)),
INSTRUCTION(SAR4MemImm1, sar,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xc1, 7, ModRM_EXT_, Immediate_1),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_IntTarget | IA32OpProp_ByteImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_ShiftOp)),
INSTRUCTION(SAR8MemImm1, sar,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX_W, ESCAPE_____, 0xc1, 7, ModRM_EXT_, Immediate_1),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_ByteImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_ShiftOp | IA32OpProp1_LongTarget)),
INSTRUCTION(SAR4MemCL, sar,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xd3, 7, ModRM_EXT_, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SourceRegisterIgnored | IA32OpProp_ByteSource | IA32OpProp_IntTarget | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_ShiftOp)),
INSTRUCTION(SAR8MemCL, sar,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX_W, ESCAPE_____, 0xd3, 7, ModRM_EXT_, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SourceRegisterIgnored | IA32OpProp_ByteSource | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_ShiftOp | IA32OpProp1_LongTarget)),
INSTRUCTION(SBB1AccImm1, sbb,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x1c, 0, ModRM_NONE, Immediate_1),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterIgnored | IA32OpProp_ByteTarget | IA32OpProp_ByteImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_TestsCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SetsCCForCompare)),
INSTRUCTION(SBB2AccImm2, sbb,
            BINARY(VEX_L___, VEX_vNONE, PREFIX_66, REX__, ESCAPE_____, 0x1d, 0, ModRM_NONE, Immediate_2),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterIgnored | IA32OpProp_ShortTarget | IA32OpProp_ShortImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_TestsCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SetsCCForCompare)),
INSTRUCTION(SBB4AccImm4, sbb,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x1d, 0, ModRM_NONE, Immediate_4),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterIgnored | IA32OpProp_IntTarget | IA32OpProp_IntImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_TestsCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SetsCCForCompare)),
INSTRUCTION(SBB8AccImm4, sbb,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX_W, ESCAPE_____, 0x1d, 0, ModRM_NONE, Immediate_4),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterIgnored | IA32OpProp_IntImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_TestsCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SetsCCForCompare | IA32OpProp1_LongTarget)),
INSTRUCTION(SBB1RegImm1, sbb,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x80, 3, ModRM_EXT_, Immediate_1),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterInModRM | IA32OpProp_ByteTarget | IA32OpProp_ByteImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_TestsCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SetsCCForCompare)),
INSTRUCTION(SBB2RegImm2, sbb,
            BINARY(VEX_L___, VEX_vNONE, PREFIX_66, REX__, ESCAPE_____, 0x81, 3, ModRM_EXT_, Immediate_2),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterInModRM | IA32OpProp_ShortTarget | IA32OpProp_ShortImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_TestsCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SetsCCForCompare)),
INSTRUCTION(SBB2RegImms, sbb,
            BINARY(VEX_L___, VEX_vNONE, PREFIX_66, REX__, ESCAPE_____, 0x83, 3, ModRM_EXT_, Immediate_S),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterInModRM | IA32OpProp_ShortTarget | IA32OpProp_SignExtendImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_TestsCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SetsCCForCompare)),
INSTRUCTION(SBB4RegImm4, sbb,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x81, 3, ModRM_EXT_, Immediate_4),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterInModRM | IA32OpProp_IntTarget | IA32OpProp_IntImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_TestsCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SetsCCForCompare)),
INSTRUCTION(SBB8RegImm4, sbb,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX_W, ESCAPE_____, 0x81, 3, ModRM_EXT_, Immediate_4),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterInModRM | IA32OpProp_IntImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_TestsCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SetsCCForCompare | IA32OpProp1_LongTarget)),
INSTRUCTION(SBB4RegImms, sbb,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x83, 3, ModRM_EXT_, Immediate_S),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterInModRM | IA32OpProp_IntTarget | IA32OpProp_SignExtendImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_TestsCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SetsCCForCompare)),
INSTRUCTION(SBB8RegImms, sbb,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX_W, ESCAPE_____, 0x83, 3, ModRM_EXT_, Immediate_S),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterInModRM | IA32OpProp_SignExtendImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_TestsCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SetsCCForCompare | IA32OpProp1_LongTarget)),
INSTRUCTION(SBB1MemImm1, sbb,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x80, 3, ModRM_EXT_, Immediate_1),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_ByteTarget | IA32OpProp_ByteImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_TestsCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SetsCCForCompare | IA32OpProp1_SupportsLockPrefix)),
INSTRUCTION(SBB2MemImm2, sbb,
            BINARY(VEX_L___, VEX_vNONE, PREFIX_66, REX__, ESCAPE_____, 0x81, 3, ModRM_EXT_, Immediate_2),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_ShortTarget | IA32OpProp_ShortImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_TestsCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SetsCCForCompare | IA32OpProp1_SupportsLockPrefix)),
INSTRUCTION(SBB2MemImms, sbb,
            BINARY(VEX_L___, VEX_vNONE, PREFIX_66, REX__, ESCAPE_____, 0x83, 3, ModRM_EXT_, Immediate_S),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_ShortTarget | IA32OpProp_SignExtendImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_TestsCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SetsCCForCompare | IA32OpProp1_SupportsLockPrefix)),
INSTRUCTION(SBB4MemImm4, sbb,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x81, 3, ModRM_EXT_, Immediate_4),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_IntTarget | IA32OpProp_IntImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_TestsCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SetsCCForCompare | IA32OpProp1_SupportsLockPrefix)),
INSTRUCTION(SBB8MemImm4, sbb,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX_W, ESCAPE_____, 0x81, 3, ModRM_EXT_, Immediate_4),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_IntImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_TestsCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SetsCCForCompare | IA32OpProp1_SupportsLockPrefix | IA32OpProp1_LongTarget)),
INSTRUCTION(SBB4MemImms, sbb,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x83, 3, ModRM_EXT_, Immediate_S),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_IntTarget | IA32OpProp_SignExtendImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_TestsCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SetsCCForCompare | IA32OpProp1_SupportsLockPrefix)),
INSTRUCTION(SBB8MemImms, sbb,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX_W, ESCAPE_____, 0x83, 3, ModRM_EXT_, Immediate_S),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SignExtendImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_TestsCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SetsCCForCompare | IA32OpProp1_SupportsLockPrefix | IA32OpProp1_LongTarget)),
INSTRUCTION(SBB1RegReg, sbb,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x1a, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SourceRegisterInModRM | IA32OpProp_ByteSource | IA32OpProp_ByteTarget | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_TestsCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SetsCCForCompare)),
INSTRUCTION(SBB2RegReg, sbb,
            BINARY(VEX_L___, VEX_vNONE, PREFIX_66, REX__, ESCAPE_____, 0x1b, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SourceRegisterInModRM | IA32OpProp_ShortSource | IA32OpProp_ShortTarget | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_TestsCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SetsCCForCompare)),
INSTRUCTION(SBB4RegReg, sbb,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x1b, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SourceRegisterInModRM | IA32OpProp_IntSource | IA32OpProp_IntTarget | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_TestsCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SetsCCForCompare)),
INSTRUCTION(SBB8RegReg, sbb,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX_W, ESCAPE_____, 0x1b, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SourceRegisterInModRM | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_TestsCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SetsCCForCompare | IA32OpProp1_LongSource | IA32OpProp1_LongTarget)),
INSTRUCTION(SBB1RegMem, sbb,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x1a, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_ByteSource | IA32OpProp_ByteTarget | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_TestsCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SourceIsMemRef | IA32OpProp1_SetsCCForCompare)),
INSTRUCTION(SBB2RegMem, sbb,
            BINARY(VEX_L___, VEX_vNONE, PREFIX_66, REX__, ESCAPE_____, 0x1b, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_ShortSource | IA32OpProp_ShortTarget | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_TestsCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SourceIsMemRef | IA32OpProp1_SetsCCForCompare)),
INSTRUCTION(SBB4RegMem, sbb,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x1b, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_IntSource | IA32OpProp_IntTarget | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_TestsCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SourceIsMemRef | IA32OpProp1_SetsCCForCompare)),
INSTRUCTION(SBB8RegMem, sbb,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX_W, ESCAPE_____, 0x1b, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_TestsCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SourceIsMemRef | IA32OpProp1_SetsCCForCompare | IA32OpProp1_LongSource | IA32OpProp1_LongTarget)),
INSTRUCTION(SBB1MemReg, sbb,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x18, 0, ModRM_MR__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_ByteSource | IA32OpProp_ByteTarget | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_TestsCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SetsCCForCompare | IA32OpProp1_SupportsLockPrefix)),
INSTRUCTION(SBB2MemReg, sbb,
            BINARY(VEX_L___, VEX_vNONE, PREFIX_66, REX__, ESCAPE_____, 0x19, 0, ModRM_MR__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_ShortSource | IA32OpProp_ShortTarget | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_TestsCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SetsCCForCompare | IA32OpProp1_SupportsLockPrefix)),
INSTRUCTION(SBB4MemReg, sbb,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x19, 0, ModRM_MR__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_IntSource | IA32OpProp_IntTarget | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_TestsCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SetsCCForCompare | IA32OpProp1_SupportsLockPrefix)),
INSTRUCTION(SBB8MemReg, sbb,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX_W, ESCAPE_____, 0x19, 0, ModRM_MR__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_TestsCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SetsCCForCompare | IA32OpProp1_SupportsLockPrefix | IA32OpProp1_LongSource | IA32OpProp1_LongTarget)),
INSTRUCTION(SETA1Reg, seta,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_0F__, 0x97, 0, ModRM_MR__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterInModRM | IA32OpProp_TestsZeroFlag | IA32OpProp_TestsCarryFlag | IA32OpProp_ByteTarget),
            PROPERTY1(0)),
INSTRUCTION(SETAE1Reg, setae,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_0F__, 0x93, 0, ModRM_MR__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterInModRM | IA32OpProp_TestsCarryFlag | IA32OpProp_ByteTarget),
            PROPERTY1(0)),
INSTRUCTION(SETB1Reg, setb,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_0F__, 0x92, 0, ModRM_MR__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterInModRM | IA32OpProp_TestsCarryFlag | IA32OpProp_ByteTarget),
            PROPERTY1(0)),
INSTRUCTION(SETBE1Reg, setbe,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_0F__, 0x96, 0, ModRM_MR__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterInModRM | IA32OpProp_TestsZeroFlag | IA32OpProp_TestsCarryFlag | IA32OpProp_ByteTarget),
            PROPERTY1(0)),
INSTRUCTION(SETE1Reg, sete,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_0F__, 0x94, 0, ModRM_MR__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterInModRM | IA32OpProp_TestsZeroFlag | IA32OpProp_ByteTarget),
            PROPERTY1(0)),
INSTRUCTION(SETNE1Reg, setne,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_0F__, 0x95, 0, ModRM_MR__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterInModRM | IA32OpProp_TestsZeroFlag | IA32OpProp_ByteTarget),
            PROPERTY1(0)),
INSTRUCTION(SETG1Reg, setg,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_0F__, 0x9f, 0, ModRM_MR__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterInModRM | IA32OpProp_TestsOverflowFlag | IA32OpProp_TestsSignFlag | IA32OpProp_TestsZeroFlag | IA32OpProp_ByteTarget),
            PROPERTY1(0)),
INSTRUCTION(SETGE1Reg, setge,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_0F__, 0x9d, 0, ModRM_MR__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterInModRM | IA32OpProp_TestsOverflowFlag | IA32OpProp_TestsSignFlag | IA32OpProp_ByteTarget),
            PROPERTY1(0)),
INSTRUCTION(SETL1Reg, setl,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_0F__, 0x9c, 0, ModRM_MR__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterInModRM | IA32OpProp_TestsOverflowFlag | IA32OpProp_TestsSignFlag | IA32OpProp_ByteTarget),
            PROPERTY1(0)),
INSTRUCTION(SETLE1Reg, setle,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_0F__, 0x9e, 0, ModRM_MR__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterInModRM | IA32OpProp_TestsOverflowFlag | IA32OpProp_TestsSignFlag | IA32OpProp_TestsZeroFlag | IA32OpProp_ByteTarget),
            PROPERTY1(0)),
INSTRUCTION(SETS1Reg, sets,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_0F__, 0x98, 0, ModRM_MR__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterInModRM | IA32OpProp_TestsSignFlag | IA32OpProp_ByteTarget),
            PROPERTY1(0)),
INSTRUCTION(SETNS1Reg, setns,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_0F__, 0x99, 0, ModRM_MR__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterInModRM | IA32OpProp_TestsSignFlag | IA32OpProp_ByteTarget),
            PROPERTY1(0)),
INSTRUCTION(SETPO1Reg, setpo,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_0F__, 0x9b, 0, ModRM_MR__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterInModRM | IA32OpProp_TestsParityFlag | IA32OpProp_ByteTarget),
            PROPERTY1(0)),
INSTRUCTION(SETPE1Reg, setpe,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_0F__, 0x9a, 0, ModRM_MR__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterInModRM | IA32OpProp_TestsParityFlag | IA32OpProp_ByteTarget),
            PROPERTY1(0)),
INSTRUCTION(SETA1Mem, seta,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_0F__, 0x97, 0, ModRM_MR__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterInModRM | IA32OpProp_TestsZeroFlag | IA32OpProp_TestsCarryFlag | IA32OpProp_ByteTarget),
            PROPERTY1(IA32OpProp1_SourceIsMemRef)),
INSTRUCTION(SETAE1Mem, setae,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_0F__, 0x93, 0, ModRM_MR__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterInModRM | IA32OpProp_TestsCarryFlag | IA32OpProp_ByteTarget),
            PROPERTY1(IA32OpProp1_SourceIsMemRef)),
INSTRUCTION(SETB1Mem, setb,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_0F__, 0x92, 0, ModRM_MR__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterInModRM | IA32OpProp_TestsCarryFlag | IA32OpProp_ByteTarget),
            PROPERTY1(IA32OpProp1_SourceIsMemRef)),
INSTRUCTION(SETBE1Mem, setbe,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_0F__, 0x96, 0, ModRM_MR__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterInModRM | IA32OpProp_TestsZeroFlag | IA32OpProp_TestsCarryFlag | IA32OpProp_ByteTarget),
            PROPERTY1(IA32OpProp1_SourceIsMemRef)),
INSTRUCTION(SETE1Mem, sete,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_0F__, 0x94, 0, ModRM_MR__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterInModRM | IA32OpProp_TestsZeroFlag | IA32OpProp_ByteTarget),
            PROPERTY1(IA32OpProp1_SourceIsMemRef)),
INSTRUCTION(SETNE1Mem, setne,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_0F__, 0x95, 0, ModRM_MR__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterInModRM | IA32OpProp_TestsZeroFlag | IA32OpProp_ByteTarget),
            PROPERTY1(IA32OpProp1_SourceIsMemRef)),
INSTRUCTION(SETG1Mem, setg,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_0F__, 0x9f, 0, ModRM_MR__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterInModRM | IA32OpProp_TestsOverflowFlag | IA32OpProp_TestsSignFlag | IA32OpProp_TestsZeroFlag | IA32OpProp_ByteTarget),
            PROPERTY1(IA32OpProp1_SourceIsMemRef)),
INSTRUCTION(SETGE1Mem, setge,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_0F__, 0x9d, 0, ModRM_MR__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterInModRM | IA32OpProp_TestsOverflowFlag | IA32OpProp_TestsSignFlag | IA32OpProp_ByteTarget),
            PROPERTY1(IA32OpProp1_SourceIsMemRef)),
INSTRUCTION(SETL1Mem, setl,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_0F__, 0x9c, 0, ModRM_MR__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterInModRM | IA32OpProp_TestsOverflowFlag | IA32OpProp_TestsSignFlag | IA32OpProp_ByteTarget),
            PROPERTY1(IA32OpProp1_SourceIsMemRef)),
INSTRUCTION(SETLE1Mem, setle,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_0F__, 0x9e, 0, ModRM_MR__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterInModRM | IA32OpProp_TestsOverflowFlag | IA32OpProp_TestsSignFlag | IA32OpProp_TestsZeroFlag | IA32OpProp_ByteTarget),
            PROPERTY1(IA32OpProp1_SourceIsMemRef)),
INSTRUCTION(SETS1Mem, sets,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_0F__, 0x98, 0, ModRM_MR__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterInModRM | IA32OpProp_TestsSignFlag | IA32OpProp_ByteTarget),
            PROPERTY1(IA32OpProp1_SourceIsMemRef)),
INSTRUCTION(SETNS1Mem, setns,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_0F__, 0x99, 0, ModRM_MR__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterInModRM | IA32OpProp_TestsSignFlag | IA32OpProp_ByteTarget),
            PROPERTY1(IA32OpProp1_SourceIsMemRef)),
INSTRUCTION(SHLD4RegRegImm1, shld,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_0F__, 0xa4, 0, ModRM_MR__, Immediate_1),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterInModRM | IA32OpProp_IntSource | IA32OpProp_IntTarget | IA32OpProp_ByteImmediate | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(0)),
INSTRUCTION(SHLD4RegRegCL, shld,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_0F__, 0xa5, 0, ModRM_MR__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterInModRM | IA32OpProp_IntSource | IA32OpProp_IntTarget | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(0)),
INSTRUCTION(SHLD4MemRegImm1, shld,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_0F__, 0xa4, 0, ModRM_MR__, Immediate_1),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_IntSource | IA32OpProp_IntTarget | IA32OpProp_ByteImmediate | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(0)),
INSTRUCTION(SHLD4MemRegCL, shld,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_0F__, 0xa5, 0, ModRM_MR__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_IntSource | IA32OpProp_IntTarget | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(0)),
INSTRUCTION(SHRD4RegRegImm1, shrd,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_0F__, 0xac, 0, ModRM_MR__, Immediate_1),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterInModRM | IA32OpProp_IntSource | IA32OpProp_IntTarget | IA32OpProp_ByteImmediate | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(0)),
INSTRUCTION(SHRD4RegRegCL, shrd,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_0F__, 0xad, 0, ModRM_MR__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterInModRM | IA32OpProp_IntSource | IA32OpProp_IntTarget | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(0)),
INSTRUCTION(SHRD4MemRegImm1, shrd,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_0F__, 0xac, 0, ModRM_MR__, Immediate_1),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_IntSource | IA32OpProp_IntTarget | IA32OpProp_ByteImmediate | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(0)),
INSTRUCTION(SHRD4MemRegCL, shrd,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_0F__, 0xad, 0, ModRM_MR__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_IntSource | IA32OpProp_IntTarget | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(0)),
INSTRUCTION(STC, stc,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xf9, 0, ModRM_NONE, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesCarryFlag),
            PROPERTY1(0)),
INSTRUCTION(STD, std,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xfd, 0, ModRM_NONE, Immediate_0),
            PROPERTY0(0),
            PROPERTY1(0)),
INSTRUCTION(STOSB, stosb,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xaa, 0, ModRM_NONE, Immediate_0),
            PROPERTY0(0),
            PROPERTY1(0)),
INSTRUCTION(STOSW, stosw,
            BINARY(VEX_L___, VEX_vNONE, PREFIX_66, REX__, ESCAPE_____, 0xab, 0, ModRM_NONE, Immediate_0),
            PROPERTY0(0),
            PROPERTY1(0)),
INSTRUCTION(STOSD, stosd,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xab, 0, ModRM_NONE, Immediate_0),
            PROPERTY0(0),
            PROPERTY1(0)),
INSTRUCTION(STOSQ, stosd,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX_W, ESCAPE_____, 0xab, 0, ModRM_NONE, Immediate_0),
            PROPERTY0(0),
            PROPERTY1(0)),
INSTRUCTION(SUB1AccImm1, sub,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x2c, 0, ModRM_NONE, Immediate_1),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterIgnored | IA32OpProp_ByteTarget | IA32OpProp_ByteImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SetsCCForCompare)),
INSTRUCTION(SUB2AccImm2, sub,
            BINARY(VEX_L___, VEX_vNONE, PREFIX_66, REX__, ESCAPE_____, 0x2d, 0, ModRM_NONE, Immediate_2),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterIgnored | IA32OpProp_ShortTarget | IA32OpProp_ShortImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SetsCCForCompare)),
INSTRUCTION(SUB4AccImm4, sub,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x2d, 0, ModRM_NONE, Immediate_4),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterIgnored | IA32OpProp_IntTarget | IA32OpProp_IntImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SetsCCForCompare)),
INSTRUCTION(SUB8AccImm4, sub,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX_W, ESCAPE_____, 0x2d, 0, ModRM_NONE, Immediate_4),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterIgnored | IA32OpProp_IntImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SetsCCForCompare | IA32OpProp1_LongTarget)),
INSTRUCTION(SUB1RegImm1, sub,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x80, 5, ModRM_EXT_, Immediate_1),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterInModRM | IA32OpProp_ByteTarget | IA32OpProp_ByteImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SetsCCForCompare)),
INSTRUCTION(SUB2RegImm2, sub,
            BINARY(VEX_L___, VEX_vNONE, PREFIX_66, REX__, ESCAPE_____, 0x81, 5, ModRM_EXT_, Immediate_2),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterInModRM | IA32OpProp_ShortTarget | IA32OpProp_ShortImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SetsCCForCompare)),
INSTRUCTION(SUB2RegImms, sub,
            BINARY(VEX_L___, VEX_vNONE, PREFIX_66, REX__, ESCAPE_____, 0x83, 5, ModRM_EXT_, Immediate_S),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterInModRM | IA32OpProp_ShortTarget | IA32OpProp_SignExtendImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SetsCCForCompare)),
INSTRUCTION(SUB4RegImm4, sub,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x81, 5, ModRM_EXT_, Immediate_4),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterInModRM | IA32OpProp_IntTarget | IA32OpProp_IntImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SetsCCForCompare)),
INSTRUCTION(SUB8RegImm4, sub,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX_W, ESCAPE_____, 0x81, 5, ModRM_EXT_, Immediate_4),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterInModRM | IA32OpProp_IntImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SetsCCForCompare | IA32OpProp1_LongTarget)),
INSTRUCTION(SUB4RegImms, sub,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x83, 5, ModRM_EXT_, Immediate_S),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterInModRM | IA32OpProp_IntTarget | IA32OpProp_SignExtendImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SetsCCForCompare)),
INSTRUCTION(SUB8RegImms, sub,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX_W, ESCAPE_____, 0x83, 5, ModRM_EXT_, Immediate_S),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterInModRM | IA32OpProp_SignExtendImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SetsCCForCompare | IA32OpProp1_LongTarget)),
INSTRUCTION(SUB1MemImm1, sub,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x80, 5, ModRM_EXT_, Immediate_1),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_ByteTarget | IA32OpProp_ByteImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SetsCCForCompare | IA32OpProp1_SupportsLockPrefix)),
INSTRUCTION(SUB2MemImm2, sub,
            BINARY(VEX_L___, VEX_vNONE, PREFIX_66, REX__, ESCAPE_____, 0x81, 5, ModRM_EXT_, Immediate_2),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_ShortTarget | IA32OpProp_ShortImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SetsCCForCompare | IA32OpProp1_SupportsLockPrefix)),
INSTRUCTION(SUB2MemImms, sub,
            BINARY(VEX_L___, VEX_vNONE, PREFIX_66, REX__, ESCAPE_____, 0x83, 5, ModRM_EXT_, Immediate_S),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_ShortTarget | IA32OpProp_SignExtendImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SetsCCForCompare | IA32OpProp1_SupportsLockPrefix)),
INSTRUCTION(SUB4MemImm4, sub,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x81, 5, ModRM_EXT_, Immediate_4),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_IntTarget | IA32OpProp_IntImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SetsCCForCompare | IA32OpProp1_SupportsLockPrefix)),
INSTRUCTION(SUB8MemImm4, sub,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX_W, ESCAPE_____, 0x81, 5, ModRM_EXT_, Immediate_4),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_IntImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SetsCCForCompare | IA32OpProp1_SupportsLockPrefix | IA32OpProp1_LongTarget)),
INSTRUCTION(SUB4MemImms, sub,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x83, 5, ModRM_EXT_, Immediate_S),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_IntTarget | IA32OpProp_SignExtendImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SetsCCForCompare | IA32OpProp1_SupportsLockPrefix)),
INSTRUCTION(SUB8MemImms, sub,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX_W, ESCAPE_____, 0x83, 5, ModRM_EXT_, Immediate_S),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SignExtendImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SetsCCForCompare | IA32OpProp1_SupportsLockPrefix | IA32OpProp1_LongTarget)),
INSTRUCTION(SUB1RegReg, sub,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x2a, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SourceRegisterInModRM | IA32OpProp_ByteSource | IA32OpProp_ByteTarget | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SetsCCForCompare)),
INSTRUCTION(SUB2RegReg, sub,
            BINARY(VEX_L___, VEX_vNONE, PREFIX_66, REX__, ESCAPE_____, 0x2b, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SourceRegisterInModRM | IA32OpProp_ShortSource | IA32OpProp_ShortTarget | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SetsCCForCompare)),
INSTRUCTION(SUB4RegReg, sub,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x2b, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SourceRegisterInModRM | IA32OpProp_IntSource | IA32OpProp_IntTarget | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SetsCCForCompare)),
INSTRUCTION(SUB8RegReg, sub,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX_W, ESCAPE_____, 0x2b, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SourceRegisterInModRM | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SetsCCForCompare | IA32OpProp1_LongSource | IA32OpProp1_LongTarget)),
INSTRUCTION(SUB1RegMem, sub,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x2a, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_ByteSource | IA32OpProp_ByteTarget | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SourceIsMemRef | IA32OpProp1_SetsCCForCompare)),
INSTRUCTION(SUB2RegMem, sub,
            BINARY(VEX_L___, VEX_vNONE, PREFIX_66, REX__, ESCAPE_____, 0x2b, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_ShortSource | IA32OpProp_ShortTarget | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SourceIsMemRef | IA32OpProp1_SetsCCForCompare)),
INSTRUCTION(SUB4RegMem, sub,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x2b, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_IntSource | IA32OpProp_IntTarget | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SourceIsMemRef | IA32OpProp1_SetsCCForCompare)),
INSTRUCTION(SUB8RegMem, sub,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX_W, ESCAPE_____, 0x2b, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SourceIsMemRef | IA32OpProp1_SetsCCForCompare | IA32OpProp1_LongSource | IA32OpProp1_LongTarget)),
INSTRUCTION(SUB1MemReg, sub,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x28, 0, ModRM_MR__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_ByteSource | IA32OpProp_ByteTarget | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SetsCCForCompare | IA32OpProp1_SupportsLockPrefix)),
INSTRUCTION(SUB2MemReg, sub,
            BINARY(VEX_L___, VEX_vNONE, PREFIX_66, REX__, ESCAPE_____, 0x29, 0, ModRM_MR__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_ShortSource | IA32OpProp_ShortTarget | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SetsCCForCompare | IA32OpProp1_SupportsLockPrefix)),
INSTRUCTION(SUB4MemReg, sub,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x29, 0, ModRM_MR__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_IntSource | IA32OpProp_IntTarget | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SetsCCForCompare | IA32OpProp1_SupportsLockPrefix)),
INSTRUCTION(SUB8MemReg, sub,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX_W, ESCAPE_____, 0x29, 0, ModRM_MR__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SetsCCForCompare | IA32OpProp1_SupportsLockPrefix | IA32OpProp1_LongSource | IA32OpProp1_LongTarget)),
INSTRUCTION(SUBSSRegReg, subss,
            BINARY(VEX_L128, VEX_vReg_, PREFIX_F3, REX__, ESCAPE_0F__, 0x5c, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SingleFP | IA32OpProp_SourceRegisterInModRM | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_XMMSource | IA32OpProp1_XMMTarget)),
INSTRUCTION(SUBSSRegMem, subss,
            BINARY(VEX_L128, VEX_vReg_, PREFIX_F3, REX__, ESCAPE_0F__, 0x5c, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SingleFP | IA32OpProp_IntSource | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SourceIsMemRef | IA32OpProp1_XMMTarget)),
INSTRUCTION(SUBPSRegReg, subps,
            BINARY(VEX_L128, VEX_vReg_, PREFIX___, REX__, ESCAPE_0F__, 0x5c, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SingleFP | IA32OpProp_SourceRegisterInModRM | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_XMMSource | IA32OpProp1_XMMTarget)),
INSTRUCTION(SUBPSRegMem, subps,
            BINARY(VEX_L128, VEX_vReg_, PREFIX___, REX__, ESCAPE_0F__, 0x5c, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SingleFP | IA32OpProp_IntSource | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SourceIsMemRef | IA32OpProp1_XMMTarget)),
INSTRUCTION(SUBSDRegReg, subsd,
            BINARY(VEX_L128, VEX_vReg_, PREFIX_F2, REX__, ESCAPE_0F__, 0x5c, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_DoubleFP | IA32OpProp_SourceRegisterInModRM | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_XMMSource | IA32OpProp1_XMMTarget)),
INSTRUCTION(SUBSDRegMem, subsd,
            BINARY(VEX_L128, VEX_vReg_, PREFIX_F2, REX__, ESCAPE_0F__, 0x5c, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_DoubleFP | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SourceIsMemRef | IA32OpProp1_XMMTarget)),
INSTRUCTION(SUBPDRegReg, subpd,
            BINARY(VEX_L128, VEX_vReg_, PREFIX_66, REX__, ESCAPE_0F__, 0x5c, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_DoubleFP | IA32OpProp_SourceRegisterInModRM | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_XMMSource | IA32OpProp1_XMMTarget)),
INSTRUCTION(SUBPDRegMem, subpd,
            BINARY(VEX_L128, VEX_vReg_, PREFIX_66, REX__, ESCAPE_0F__, 0x5c, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_DoubleFP | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SourceIsMemRef | IA32OpProp1_XMMTarget)),
INSTRUCTION(TEST1AccImm1, test,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xa8, 0, ModRM_NONE, Immediate_1),
            PROPERTY0(IA32OpProp_TargetRegisterIgnored | IA32OpProp_ByteTarget | IA32OpProp_ByteImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_FusableCompare)),
INSTRUCTION(TEST1AccHImm1, test,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xa8, 0, ModRM_NONE, Immediate_1),
            PROPERTY0(IA32OpProp_TargetRegisterIgnored | IA32OpProp_ByteTarget | IA32OpProp_ByteImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_FusableCompare)),
INSTRUCTION(TEST2AccImm2, test,
            BINARY(VEX_L___, VEX_vNONE, PREFIX_66, REX__, ESCAPE_____, 0xa9, 0, ModRM_NONE, Immediate_2),
            PROPERTY0(IA32OpProp_TargetRegisterIgnored | IA32OpProp_ShortTarget | IA32OpProp_ShortImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_FusableCompare)),
INSTRUCTION(TEST4AccImm4, test,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xa9, 0, ModRM_NONE, Immediate_4),
            PROPERTY0(IA32OpProp_TargetRegisterIgnored | IA32OpProp_IntTarget | IA32OpProp_IntImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_FusableCompare)),
INSTRUCTION(TEST8AccImm4, test,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX_W, ESCAPE_____, 0xa9, 0, ModRM_NONE, Immediate_4),
            PROPERTY0(IA32OpProp_TargetRegisterIgnored | IA32OpProp_IntImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_LongTarget | IA32OpProp1_FusableCompare)),
INSTRUCTION(TEST1RegImm1, test,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xf6, 0, ModRM_MR__, Immediate_1),
            PROPERTY0(IA32OpProp_TargetRegisterInModRM | IA32OpProp_ByteTarget | IA32OpProp_ByteImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_FusableCompare)),
INSTRUCTION(TEST2RegImm2, test,
            BINARY(VEX_L___, VEX_vNONE, PREFIX_66, REX__, ESCAPE_____, 0xf7, 0, ModRM_MR__, Immediate_2),
            PROPERTY0(IA32OpProp_TargetRegisterInModRM | IA32OpProp_ShortTarget | IA32OpProp_ShortImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_FusableCompare)),
INSTRUCTION(TEST4RegImm4, test,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xf7, 0, ModRM_MR__, Immediate_4),
            PROPERTY0(IA32OpProp_TargetRegisterInModRM | IA32OpProp_IntTarget | IA32OpProp_IntImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_FusableCompare)),
INSTRUCTION(TEST8RegImm4, test,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX_W, ESCAPE_____, 0xf7, 0, ModRM_MR__, Immediate_4),
            PROPERTY0(IA32OpProp_TargetRegisterInModRM | IA32OpProp_IntImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_LongTarget | IA32OpProp1_FusableCompare)),
INSTRUCTION(TEST1MemImm1, test,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xf6, 0, ModRM_MR__, Immediate_1),
            PROPERTY0(IA32OpProp_ByteTarget | IA32OpProp_ByteImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(0)),
INSTRUCTION(TEST2MemImm2, test,
            BINARY(VEX_L___, VEX_vNONE, PREFIX_66, REX__, ESCAPE_____, 0xf7, 0, ModRM_MR__, Immediate_2),
            PROPERTY0(IA32OpProp_ShortTarget | IA32OpProp_ShortImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(0)),
INSTRUCTION(TEST4MemImm4, test,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xf7, 0, ModRM_MR__, Immediate_4),
            PROPERTY0(IA32OpProp_IntTarget | IA32OpProp_IntImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(0)),
INSTRUCTION(TEST8MemImm4, test,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX_W, ESCAPE_____, 0xf7, 0, ModRM_MR__, Immediate_4),
            PROPERTY0(IA32OpProp_IntImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_LongTarget)),
INSTRUCTION(TEST1RegReg, test,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x84, 0, ModRM_MR__, Immediate_0),
            PROPERTY0(IA32OpProp_SourceRegisterInModRM | IA32OpProp_ByteSource | IA32OpProp_ByteTarget | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_FusableCompare)),
INSTRUCTION(TEST2RegReg, test,
            BINARY(VEX_L___, VEX_vNONE, PREFIX_66, REX__, ESCAPE_____, 0x85, 0, ModRM_MR__, Immediate_0),
            PROPERTY0(IA32OpProp_SourceRegisterInModRM | IA32OpProp_ShortSource | IA32OpProp_ShortTarget | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_FusableCompare)),
INSTRUCTION(TEST4RegReg, test,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x85, 0, ModRM_MR__, Immediate_0),
            PROPERTY0(IA32OpProp_SourceRegisterInModRM | IA32OpProp_IntSource | IA32OpProp_IntTarget | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_FusableCompare)),
INSTRUCTION(TEST8RegReg, test,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX_W, ESCAPE_____, 0x85, 0, ModRM_MR__, Immediate_0),
            PROPERTY0(IA32OpProp_SourceRegisterInModRM | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_LongSource | IA32OpProp1_LongTarget | IA32OpProp1_FusableCompare)),
INSTRUCTION(TEST1MemReg, test,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x84, 0, ModRM_MR__, Immediate_0),
            PROPERTY0(IA32OpProp_ByteSource | IA32OpProp_ByteTarget | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_FusableCompare)),
INSTRUCTION(TEST2MemReg, test,
            BINARY(VEX_L___, VEX_vNONE, PREFIX_66, REX__, ESCAPE_____, 0x85, 0, ModRM_MR__, Immediate_0),
            PROPERTY0(IA32OpProp_ShortSource | IA32OpProp_ShortTarget | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_FusableCompare)),
INSTRUCTION(TEST4MemReg, test,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x85, 0, ModRM_MR__, Immediate_0),
            PROPERTY0(IA32OpProp_IntSource | IA32OpProp_IntTarget | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_FusableCompare)),
INSTRUCTION(TEST8MemReg, test,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX_W, ESCAPE_____, 0x85, 0, ModRM_MR__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_LongSource | IA32OpProp1_LongTarget | IA32OpProp1_FusableCompare)),
INSTRUCTION(XABORT, xabort,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xc6, 7, ModRM_EXT_, Immediate_1),
            PROPERTY0(IA32OpProp_ByteImmediate),
            PROPERTY1(0)),
INSTRUCTION(XBEGIN2, xbegin,
            BINARY(VEX_L___, VEX_vNONE, PREFIX_66, REX__, ESCAPE_____, 0xc7, 7, ModRM_EXT_, Immediate_2),
            PROPERTY0(IA32OpProp_BranchOp | IA32OpProp_ShortImmediate),
            PROPERTY1(0)),
INSTRUCTION(XBEGIN4, xbegin,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0xc7, 7, ModRM_EXT_, Immediate_4),
            PROPERTY0(IA32OpProp_BranchOp | IA32OpProp_IntImmediate),
            PROPERTY1(0)),
INSTRUCTION(XCHG2AccReg, xchg,
            BINARY(VEX_L___, VEX_vNONE, PREFIX_66, REX__, ESCAPE_____, 0x90, 0, ModRM_NONE, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_ModifiesSource | IA32OpProp_TargetRegisterInOpcode | IA32OpProp_SourceRegisterIgnored | IA32OpProp_ShortSource | IA32OpProp_ShortTarget | IA32OpProp_UsesTarget),
            PROPERTY1(0)),
INSTRUCTION(XCHG4AccReg, xchg,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x90, 0, ModRM_NONE, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_ModifiesSource | IA32OpProp_TargetRegisterInOpcode | IA32OpProp_SourceRegisterIgnored | IA32OpProp_IntSource | IA32OpProp_IntTarget | IA32OpProp_UsesTarget),
            PROPERTY1(0)),
INSTRUCTION(XCHG8AccReg, xchg,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX_W, ESCAPE_____, 0x90, 0, ModRM_NONE, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_ModifiesSource | IA32OpProp_TargetRegisterInOpcode | IA32OpProp_SourceRegisterIgnored | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_LongSource | IA32OpProp1_LongTarget)),
INSTRUCTION(XCHG1RegReg, xchg,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x86, 0, ModRM_MR__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_ModifiesSource | IA32OpProp_TargetRegisterInModRM | IA32OpProp_ByteSource | IA32OpProp_ByteTarget | IA32OpProp_UsesTarget),
            PROPERTY1(0)),
INSTRUCTION(XCHG2RegReg, xchg,
            BINARY(VEX_L___, VEX_vNONE, PREFIX_66, REX__, ESCAPE_____, 0x87, 0, ModRM_MR__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_ModifiesSource | IA32OpProp_TargetRegisterInModRM | IA32OpProp_ShortSource | IA32OpProp_ShortTarget | IA32OpProp_UsesTarget),
            PROPERTY1(0)),
INSTRUCTION(XCHG4RegReg, xchg,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x87, 0, ModRM_MR__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_ModifiesSource | IA32OpProp_TargetRegisterInModRM | IA32OpProp_IntSource | IA32OpProp_IntTarget | IA32OpProp_UsesTarget),
            PROPERTY1(0)),
INSTRUCTION(XCHG8RegReg, xchg,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX_W, ESCAPE_____, 0x87, 0, ModRM_MR__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_ModifiesSource | IA32OpProp_TargetRegisterInModRM | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_LongSource | IA32OpProp1_LongTarget)),
INSTRUCTION(XCHG1RegMem, xchg,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x86, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_ModifiesSource | IA32OpProp_ByteSource | IA32OpProp_ByteTarget | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SourceIsMemRef)),
INSTRUCTION(XCHG2RegMem, xchg,
            BINARY(VEX_L___, VEX_vNONE, PREFIX_66, REX__, ESCAPE_____, 0x87, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_ModifiesSource | IA32OpProp_ShortSource | IA32OpProp_ShortTarget | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SourceIsMemRef)),
INSTRUCTION(XCHG4RegMem, xchg,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x87, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_ModifiesSource | IA32OpProp_IntSource | IA32OpProp_IntTarget | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SourceIsMemRef)),
INSTRUCTION(XCHG8RegMem, xchg,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX_W, ESCAPE_____, 0x87, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_ModifiesSource | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_LongSource | IA32OpProp1_LongTarget | IA32OpProp1_SourceIsMemRef)),
INSTRUCTION(XCHG1MemReg, xchg,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x86, 0, ModRM_MR__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_ModifiesSource | IA32OpProp_ByteSource | IA32OpProp_ByteTarget | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SupportsLockPrefix)),
INSTRUCTION(XCHG2MemReg, xchg,
            BINARY(VEX_L___, VEX_vNONE, PREFIX_66, REX__, ESCAPE_____, 0x87, 0, ModRM_MR__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_ModifiesSource | IA32OpProp_ShortSource | IA32OpProp_ShortTarget | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SupportsLockPrefix)),
INSTRUCTION(XCHG4MemReg, xchg,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x87, 0, ModRM_MR__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_ModifiesSource | IA32OpProp_IntSource | IA32OpProp_IntTarget | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SupportsLockPrefix)),
INSTRUCTION(XCHG8MemReg, xchg,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX_W, ESCAPE_____, 0x87, 0, ModRM_MR__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_ModifiesSource | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_LongSource | IA32OpProp1_LongTarget | IA32OpProp1_SupportsLockPrefix)),
INSTRUCTION(XEND, xend,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_0F__, 0x01, 2, ModRM_EXT_, Immediate_0),
            PROPERTY0(0),
            PROPERTY1(0)),
INSTRUCTION(XOR1AccImm1, xor,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x34, 0, ModRM_NONE, Immediate_1),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterIgnored | IA32OpProp_ByteTarget | IA32OpProp_ByteImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest)),
INSTRUCTION(XOR2AccImm2, xor,
            BINARY(VEX_L___, VEX_vNONE, PREFIX_66, REX__, ESCAPE_____, 0x35, 0, ModRM_NONE, Immediate_2),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterIgnored | IA32OpProp_ShortTarget | IA32OpProp_ShortImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest)),
INSTRUCTION(XOR4AccImm4, xor,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x35, 0, ModRM_NONE, Immediate_4),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterIgnored | IA32OpProp_IntTarget | IA32OpProp_IntImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest)),
INSTRUCTION(XOR8AccImm4, xor,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX_W, ESCAPE_____, 0x35, 0, ModRM_NONE, Immediate_4),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterIgnored | IA32OpProp_IntImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_LongTarget)),
INSTRUCTION(XOR1RegImm1, xor,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x80, 6, ModRM_EXT_, Immediate_1),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterInModRM | IA32OpProp_ByteTarget | IA32OpProp_ByteImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest)),
INSTRUCTION(XOR2RegImm2, xor,
            BINARY(VEX_L___, VEX_vNONE, PREFIX_66, REX__, ESCAPE_____, 0x81, 6, ModRM_EXT_, Immediate_2),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterInModRM | IA32OpProp_ShortTarget | IA32OpProp_ShortImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest)),
INSTRUCTION(XOR2RegImms, xor,
            BINARY(VEX_L___, VEX_vNONE, PREFIX_66, REX__, ESCAPE_____, 0x83, 6, ModRM_EXT_, Immediate_S),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterInModRM | IA32OpProp_ShortTarget | IA32OpProp_SignExtendImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest)),
INSTRUCTION(XOR4RegImm4, xor,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x81, 6, ModRM_EXT_, Immediate_4),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterInModRM | IA32OpProp_IntTarget | IA32OpProp_IntImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest)),
INSTRUCTION(XOR8RegImm4, xor,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX_W, ESCAPE_____, 0x81, 6, ModRM_EXT_, Immediate_4),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterInModRM | IA32OpProp_IntImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_LongTarget)),
INSTRUCTION(XOR4RegImms, xor,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x83, 6, ModRM_EXT_, Immediate_S),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterInModRM | IA32OpProp_IntTarget | IA32OpProp_SignExtendImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest)),
INSTRUCTION(XOR8RegImms, xor,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX_W, ESCAPE_____, 0x83, 6, ModRM_EXT_, Immediate_S),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_TargetRegisterInModRM | IA32OpProp_SignExtendImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_LongTarget)),
INSTRUCTION(XOR1MemImm1, xor,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x80, 6, ModRM_EXT_, Immediate_1),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_ByteTarget | IA32OpProp_ByteImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SupportsLockPrefix)),
INSTRUCTION(XOR2MemImm2, xor,
            BINARY(VEX_L___, VEX_vNONE, PREFIX_66, REX__, ESCAPE_____, 0x81, 6, ModRM_EXT_, Immediate_2),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_ShortTarget | IA32OpProp_ShortImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SupportsLockPrefix)),
INSTRUCTION(XOR2MemImms, xor,
            BINARY(VEX_L___, VEX_vNONE, PREFIX_66, REX__, ESCAPE_____, 0x83, 6, ModRM_EXT_, Immediate_S),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_ShortTarget | IA32OpProp_SignExtendImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SupportsLockPrefix)),
INSTRUCTION(XOR4MemImm4, xor,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x81, 6, ModRM_EXT_, Immediate_4),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_IntTarget | IA32OpProp_IntImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SupportsLockPrefix)),
INSTRUCTION(XOR8MemImm4, xor,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX_W, ESCAPE_____, 0x81, 6, ModRM_EXT_, Immediate_4),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_IntImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SupportsLockPrefix | IA32OpProp1_LongTarget)),
INSTRUCTION(XOR4MemImms, xor,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x83, 6, ModRM_EXT_, Immediate_S),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_IntTarget | IA32OpProp_SignExtendImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SupportsLockPrefix)),
INSTRUCTION(XOR8MemImms, xor,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX_W, ESCAPE_____, 0x83, 6, ModRM_EXT_, Immediate_S),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SignExtendImmediate | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SupportsLockPrefix | IA32OpProp1_LongTarget)),
INSTRUCTION(XOR1RegReg, xor,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x32, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SourceRegisterInModRM | IA32OpProp_ByteSource | IA32OpProp_ByteTarget | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest)),
INSTRUCTION(XOR2RegReg, xor,
            BINARY(VEX_L___, VEX_vNONE, PREFIX_66, REX__, ESCAPE_____, 0x33, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SourceRegisterInModRM | IA32OpProp_ShortSource | IA32OpProp_ShortTarget | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest)),
INSTRUCTION(XOR4RegReg, xor,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x33, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SourceRegisterInModRM | IA32OpProp_IntSource | IA32OpProp_IntTarget | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest)),
INSTRUCTION(XOR8RegReg, xor,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX_W, ESCAPE_____, 0x33, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SourceRegisterInModRM | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_LongSource | IA32OpProp1_LongTarget)),
INSTRUCTION(XOR1RegMem, xor,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x32, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_ByteSource | IA32OpProp_ByteTarget | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SourceIsMemRef)),
INSTRUCTION(XOR2RegMem, xor,
            BINARY(VEX_L___, VEX_vNONE, PREFIX_66, REX__, ESCAPE_____, 0x33, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_ShortSource | IA32OpProp_ShortTarget | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SourceIsMemRef)),
INSTRUCTION(XOR4RegMem, xor,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x33, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_IntSource | IA32OpProp_IntTarget | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SourceIsMemRef)),
INSTRUCTION(XOR8RegMem, xor,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX_W, ESCAPE_____, 0x33, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SourceIsMemRef | IA32OpProp1_LongSource | IA32OpProp1_LongTarget)),
INSTRUCTION(XOR1MemReg, xor,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x30, 0, ModRM_MR__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_ByteSource | IA32OpProp_ByteTarget | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SupportsLockPrefix)),
INSTRUCTION(XOR2MemReg, xor,
            BINARY(VEX_L___, VEX_vNONE, PREFIX_66, REX__, ESCAPE_____, 0x31, 0, ModRM_MR__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_ShortSource | IA32OpProp_ShortTarget | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SupportsLockPrefix)),
INSTRUCTION(XOR4MemReg, xor,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x31, 0, ModRM_MR__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_IntSource | IA32OpProp_IntTarget | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SupportsLockPrefix)),
INSTRUCTION(XOR8MemReg, xor,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX_W, ESCAPE_____, 0x31, 0, ModRM_MR__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_SetsCCForTest | IA32OpProp1_SupportsLockPrefix | IA32OpProp1_LongSource | IA32OpProp1_LongTarget)),
INSTRUCTION(XORPSRegReg, xorps,
            BINARY(VEX_L128, VEX_vReg_, PREFIX___, REX__, ESCAPE_0F__, 0x57, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SingleFP | IA32OpProp_SourceRegisterInModRM | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_XMMSource | IA32OpProp1_XMMTarget)),
INSTRUCTION(XORPSRegMem, xorps,
            BINARY(VEX_L128, VEX_vReg_, PREFIX___, REX__, ESCAPE_0F__, 0x57, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SingleFP | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_XMMSource | IA32OpProp1_SourceIsMemRef | IA32OpProp1_XMMTarget)),
INSTRUCTION(XORPDRegReg, xorpd,
            BINARY(VEX_L128, VEX_vReg_, PREFIX_66, REX__, ESCAPE_0F__, 0x57, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_DoubleFP | IA32OpProp_SourceRegisterInModRM | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_XMMSource | IA32OpProp1_XMMTarget)),
INSTRUCTION(MFENCE, mfence,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_0F__, 0xae, 6, ModRM_EXT_, Immediate_0),
            PROPERTY0(0),
            PROPERTY1(0)),
INSTRUCTION(LFENCE, lfence,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_0F__, 0xae, 5, ModRM_EXT_, Immediate_0),
            PROPERTY0(0),
            PROPERTY1(0)),
INSTRUCTION(SFENCE, sfence,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_0F__, 0xae, 7, ModRM_EXT_, Immediate_0),
            PROPERTY0(0),
            PROPERTY1(0)),
INSTRUCTION(PCMPESTRI, pcmpestri,
            BINARY(VEX_L128, VEX_vNONE, PREFIX_66, REX__, ESCAPE_0F3A, 0x61, 0, ModRM_RM__, Immediate_1),
            PROPERTY0(IA32OpProp_UsesTarget | IA32OpProp_SourceRegisterInModRM | IA32OpProp_ModifiesCarryFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesTarget | IA32OpProp_DoubleFP | IA32OpProp_ByteImmediate),
            PROPERTY1(IA32OpProp1_XMMSource | IA32OpProp1_XMMTarget)),
INSTRUCTION(PREFETCHNTA, prefetchnta,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_0F__, 0x18, 0, ModRM_EXT_, Immediate_0),
            PROPERTY0(0),
            PROPERTY1(0)),
INSTRUCTION(PREFETCHT0, prefetcht0,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_0F__, 0x18, 1, ModRM_EXT_, Immediate_0),
            PROPERTY0(0),
            PROPERTY1(0)),
INSTRUCTION(PREFETCHT1, prefetcht1,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_0F__, 0x18, 2, ModRM_EXT_, Immediate_0),
            PROPERTY0(0),
            PROPERTY1(0)),
INSTRUCTION(PREFETCHT2, prefetcht2,
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_0F__, 0x18, 3, ModRM_EXT_, Immediate_0),
            PROPERTY0(0),
            PROPERTY1(0)),
INSTRUCTION(ANDNPSRegReg, andnps,
            BINARY(VEX_L128, VEX_vReg_, PREFIX___, REX__, ESCAPE_0F__, 0x55, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SingleFP | IA32OpProp_SourceRegisterInModRM | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_XMMSource | IA32OpProp1_XMMTarget)),
INSTRUCTION(ANDNPDRegReg, andnpd,
            BINARY(VEX_L128, VEX_vReg_, PREFIX_66, REX__, ESCAPE_0F__, 0x55, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_DoubleFP | IA32OpProp_SourceRegisterInModRM | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_XMMSource | IA32OpProp1_XMMTarget)),
INSTRUCTION(PSLLQRegImm1, psllq,
            BINARY(VEX_L128, VEX_vReg_, PREFIX_66, REX__, ESCAPE_0F__, 0x73, 6, ModRM_EXT_, Immediate_1),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_ByteImmediate | IA32OpProp_DoubleFP | IA32OpProp_TargetRegisterInModRM | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_XMMSource | IA32OpProp1_XMMTarget)),
INSTRUCTION(PSRLQRegImm1, psrlq,
            BINARY(VEX_L128, VEX_vReg_, PREFIX_66, REX__, ESCAPE_0F__, 0x73, 2, ModRM_EXT_, Immediate_1),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_ByteImmediate | IA32OpProp_DoubleFP | IA32OpProp_TargetRegisterInModRM | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_XMMSource | IA32OpProp1_XMMTarget)),
INSTRUCTION(VPERM2I128RegRegImm1, vperm2i128 ,
            BINARY(VEX_L256, VEX_vReg_, PREFIX_66, REX__, ESCAPE_0F3A, 0x46, 0, ModRM_RM__, Immediate_1),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_ByteImmediate | IA32OpProp_SourceRegisterInModRM | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_XMMSource | IA32OpProp1_XMMTarget)),
INSTRUCTION(VFMADD132SSRegRegReg, vfmadd132ss,
            BINARY(VEX_L128, VEX_vReg_, PREFIX_66, REX__, ESCAPE_0F38, 0x99, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SingleFP | IA32OpProp_SourceRegisterInModRM | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_XMMSource | IA32OpProp1_XMMTarget)),
INSTRUCTION(VFMADD132SSRegRegMem, vfmadd132ss,
            BINARY(VEX_L128, VEX_vReg_, PREFIX_66, REX__, ESCAPE_0F38, 0x99, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SingleFP | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_XMMSource | IA32OpProp1_SourceIsMemRef | IA32OpProp1_XMMTarget)),
INSTRUCTION(VFMADD213SSRegRegReg, vfmadd213ss,
            BINARY(VEX_L128, VEX_vReg_, PREFIX_66, REX__, ESCAPE_0F38, 0xA9, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SingleFP | IA32OpProp_SourceRegisterInModRM | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_XMMSource | IA32OpProp1_XMMTarget)),
INSTRUCTION(VFMADD213SSRegRegMem, vfmadd213ss,
            BINARY(VEX_L128, VEX_vReg_, PREFIX_66, REX__, ESCAPE_0F38, 0xA9, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SingleFP | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_XMMSource | IA32OpProp1_SourceIsMemRef | IA32OpProp1_XMMTarget)),
INSTRUCTION(VFMADD231SSRegRegReg, vfmadd231ss,
            BINARY(VEX_L128, VEX_vReg_, PREFIX_66, REX__, ESCAPE_0F38, 0xB9, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SingleFP | IA32OpProp_SourceRegisterInModRM | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_XMMSource | IA32OpProp1_XMMTarget)),
INSTRUCTION(VFMADD231SSRegRegMem, vfmadd231ss,
            BINARY(VEX_L128, VEX_vReg_, PREFIX_66, REX__, ESCAPE_0F38, 0xB9, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SingleFP | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_XMMSource | IA32OpProp1_SourceIsMemRef | IA32OpProp1_XMMTarget)),
INSTRUCTION(VFMADD132SDRegRegReg, vfmadd132sd,
            BINARY(VEX_L128, VEX_vReg_, PREFIX_66, REX_W, ESCAPE_0F38, 0x99, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_DoubleFP | IA32OpProp_SourceRegisterInModRM | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_XMMSource | IA32OpProp1_XMMTarget)),
INSTRUCTION(VFMADD132SDRegRegMem, vfmadd132sd,
            BINARY(VEX_L128, VEX_vReg_, PREFIX_66, REX_W, ESCAPE_0F38, 0x99, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_DoubleFP | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_XMMSource | IA32OpProp1_SourceIsMemRef | IA32OpProp1_XMMTarget)),
INSTRUCTION(VFMADD213SDRegRegReg, vfmadd213sd,
            BINARY(VEX_L128, VEX_vReg_, PREFIX_66, REX_W, ESCAPE_0F38, 0xA9, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_DoubleFP | IA32OpProp_SourceRegisterInModRM | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_XMMSource | IA32OpProp1_XMMTarget)),
INSTRUCTION(VFMADD213SDRegRegMem, vfmadd213sd,
            BINARY(VEX_L128, VEX_vReg_, PREFIX_66, REX_W, ESCAPE_0F38, 0xA9, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_DoubleFP | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_XMMSource | IA32OpProp1_SourceIsMemRef | IA32OpProp1_XMMTarget)),
INSTRUCTION(VFMADD231SDRegRegReg, vfmadd231sd,
            BINARY(VEX_L128, VEX_vReg_, PREFIX_66, REX_W, ESCAPE_0F38, 0xB9, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_DoubleFP | IA32OpProp_SourceRegisterInModRM | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_XMMSource | IA32OpProp1_XMMTarget)),
INSTRUCTION(VFMADD231SDRegRegMem, vfmadd231sd,
            BINARY(VEX_L128, VEX_vReg_, PREFIX_66, REX_W, ESCAPE_0F38, 0xB9, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_DoubleFP | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_XMMSource | IA32OpProp1_SourceIsMemRef | IA32OpProp1_XMMTarget)),
INSTRUCTION(VFMSUB132SSRegRegReg, vfmsub132ss,
            BINARY(VEX_L128, VEX_vReg_, PREFIX_66, REX__, ESCAPE_0F38, 0x9B, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SingleFP | IA32OpProp_SourceRegisterInModRM | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_XMMSource | IA32OpProp1_XMMTarget)),
INSTRUCTION(VFMSUB132SSRegRegMem, vfmsub132ss,
            BINARY(VEX_L128, VEX_vReg_, PREFIX_66, REX__, ESCAPE_0F38, 0x9B, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SingleFP | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_XMMSource | IA32OpProp1_SourceIsMemRef | IA32OpProp1_XMMTarget)),
INSTRUCTION(VFMSUB213SSRegRegReg, vfmsub213ss,
            BINARY(VEX_L128, VEX_vReg_, PREFIX_66, REX__, ESCAPE_0F38, 0xAB, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SingleFP | IA32OpProp_SourceRegisterInModRM | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_XMMSource | IA32OpProp1_XMMTarget)),
INSTRUCTION(VFMSUB213SSRegRegMem, vfmsub213ss,
            BINARY(VEX_L128, VEX_vReg_, PREFIX_66, REX__, ESCAPE_0F38, 0xAB, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SingleFP | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_XMMSource | IA32OpProp1_SourceIsMemRef | IA32OpProp1_XMMTarget)),
INSTRUCTION(VFMSUB231SSRegRegReg, vfmsub231ss,
            BINARY(VEX_L128, VEX_vReg_, PREFIX_66, REX__, ESCAPE_0F38, 0xBB, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SingleFP | IA32OpProp_SourceRegisterInModRM | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_XMMSource | IA32OpProp1_XMMTarget)),
INSTRUCTION(VFMSUB231SSRegRegMem, vfmsub231ss,
            BINARY(VEX_L128, VEX_vReg_, PREFIX_66, REX__, ESCAPE_0F38, 0xBB, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SingleFP | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_XMMSource | IA32OpProp1_SourceIsMemRef | IA32OpProp1_XMMTarget)),
INSTRUCTION(VFMSUB132SDRegRegReg, vfmsub132sd,
            BINARY(VEX_L128, VEX_vReg_, PREFIX_66, REX_W, ESCAPE_0F38, 0x9B, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_DoubleFP | IA32OpProp_SourceRegisterInModRM | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_XMMSource | IA32OpProp1_XMMTarget)),
INSTRUCTION(VFMSUB132SDRegRegMem, vfmsub132sd,
            BINARY(VEX_L128, VEX_vReg_, PREFIX_66, REX_W, ESCAPE_0F38, 0x9B, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_DoubleFP | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_XMMSource | IA32OpProp1_SourceIsMemRef | IA32OpProp1_XMMTarget)),
INSTRUCTION(VFMSUB213SDRegRegReg, vfmsub213sd,
            BINARY(VEX_L128, VEX_vReg_, PREFIX_66, REX_W, ESCAPE_0F38, 0xAB, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_DoubleFP | IA32OpProp_SourceRegisterInModRM | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_XMMSource | IA32OpProp1_XMMTarget)),
INSTRUCTION(VFMSUB213SDRegRegMem, vfmsub213sd,
            BINARY(VEX_L128, VEX_vReg_, PREFIX_66, REX_W, ESCAPE_0F38, 0xAB, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_DoubleFP | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_XMMSource | IA32OpProp1_SourceIsMemRef | IA32OpProp1_XMMTarget)),
INSTRUCTION(VFMSUB231SDRegRegReg, vfmsub231sd,
            BINARY(VEX_L128, VEX_vReg_, PREFIX_66, REX_W, ESCAPE_0F38, 0xBB, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_DoubleFP | IA32OpProp_SourceRegisterInModRM | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_XMMSource | IA32OpProp1_XMMTarget)),
INSTRUCTION(VFMSUB231SDRegRegMem, vfmsub231sd,
            BINARY(VEX_L128, VEX_vReg_, PREFIX_66, REX_W, ESCAPE_0F38, 0xBB, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_DoubleFP | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_XMMSource | IA32OpProp1_SourceIsMemRef | IA32OpProp1_XMMTarget)),
INSTRUCTION(VFNMADD132SSRegRegReg, vfnmadd132ss,
            BINARY(VEX_L128, VEX_vReg_, PREFIX_66, REX__, ESCAPE_0F38, 0x9D, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SingleFP | IA32OpProp_SourceRegisterInModRM | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_XMMSource | IA32OpProp1_XMMTarget)),
INSTRUCTION(VFNMADD132SSRegRegMem, vfnmadd132ss,
            BINARY(VEX_L128, VEX_vReg_, PREFIX_66, REX__, ESCAPE_0F38, 0x9D, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SingleFP | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_XMMSource | IA32OpProp1_SourceIsMemRef | IA32OpProp1_XMMTarget)),
INSTRUCTION(VFNMADD213SSRegRegReg, vfnmadd213ss,
            BINARY(VEX_L128, VEX_vReg_, PREFIX_66, REX__, ESCAPE_0F38, 0xAD, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SingleFP | IA32OpProp_SourceRegisterInModRM | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_XMMSource | IA32OpProp1_XMMTarget)),
INSTRUCTION(VFNMADD213SSRegRegMem, vfnmadd213ss,
            BINARY(VEX_L128, VEX_vReg_, PREFIX_66, REX__, ESCAPE_0F38, 0xAD, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SingleFP | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_XMMSource | IA32OpProp1_SourceIsMemRef | IA32OpProp1_XMMTarget)),
INSTRUCTION(VFNMADD231SSRegRegReg, vfnmadd231ss,
            BINARY(VEX_L128, VEX_vReg_, PREFIX_66, REX__, ESCAPE_0F38, 0xBD, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SingleFP | IA32OpProp_SourceRegisterInModRM | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_XMMSource | IA32OpProp1_XMMTarget)),
INSTRUCTION(VFNMADD231SSRegRegMem, vfnmadd231ss,
            BINARY(VEX_L128, VEX_vReg_, PREFIX_66, REX__, ESCAPE_0F38, 0xBD, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SingleFP | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_XMMSource | IA32OpProp1_SourceIsMemRef | IA32OpProp1_XMMTarget)),
INSTRUCTION(VFNMADD132SDRegRegReg, vfnmadd132sd,
            BINARY(VEX_L128, VEX_vReg_, PREFIX_66, REX_W, ESCAPE_0F38, 0x9D, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_DoubleFP | IA32OpProp_SourceRegisterInModRM | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_XMMSource | IA32OpProp1_XMMTarget)),
INSTRUCTION(VFNMADD132SDRegRegMem, vfnmadd132sd,
            BINARY(VEX_L128, VEX_vReg_, PREFIX_66, REX_W, ESCAPE_0F38, 0x9D, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_DoubleFP | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_XMMSource | IA32OpProp1_SourceIsMemRef | IA32OpProp1_XMMTarget)),
INSTRUCTION(VFNMADD213SDRegRegReg, vfnmadd213sd,
            BINARY(VEX_L128, VEX_vReg_, PREFIX_66, REX_W, ESCAPE_0F38, 0xAD, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_DoubleFP | IA32OpProp_SourceRegisterInModRM | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_XMMSource | IA32OpProp1_XMMTarget)),
INSTRUCTION(VFNMADD213SDRegRegMem, vfnmadd213sd,
            BINARY(VEX_L128, VEX_vReg_, PREFIX_66, REX_W, ESCAPE_0F38, 0xAD, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_DoubleFP | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_XMMSource | IA32OpProp1_SourceIsMemRef | IA32OpProp1_XMMTarget)),
INSTRUCTION(VFNMADD231SDRegRegReg, vfnmadd231sd,
            BINARY(VEX_L128, VEX_vReg_, PREFIX_66, REX_W, ESCAPE_0F38, 0xBD, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_DoubleFP | IA32OpProp_SourceRegisterInModRM | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_XMMSource | IA32OpProp1_XMMTarget)),
INSTRUCTION(VFNMADD231SDRegRegMem, vfnmadd231sd,
            BINARY(VEX_L128, VEX_vReg_, PREFIX_66, REX_W, ESCAPE_0F38, 0xBD, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_DoubleFP | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_XMMSource | IA32OpProp1_SourceIsMemRef | IA32OpProp1_XMMTarget)),
INSTRUCTION(VFNMSUB132SSRegRegReg, vfnmsub132ss,
            BINARY(VEX_L128, VEX_vReg_, PREFIX_66, REX__, ESCAPE_0F38, 0x9F, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SingleFP | IA32OpProp_SourceRegisterInModRM | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_XMMSource | IA32OpProp1_XMMTarget)),
INSTRUCTION(VFNMSUB132SSRegRegMem, vfnmsub132ss,
            BINARY(VEX_L128, VEX_vReg_, PREFIX_66, REX__, ESCAPE_0F38, 0x9F, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SingleFP | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_XMMSource | IA32OpProp1_SourceIsMemRef | IA32OpProp1_XMMTarget)),
INSTRUCTION(VFNMSUB213SSRegRegReg, vfnmsub213ss,
            BINARY(VEX_L128, VEX_vReg_, PREFIX_66, REX__, ESCAPE_0F38, 0xAF, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SingleFP | IA32OpProp_SourceRegisterInModRM | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_XMMSource | IA32OpProp1_XMMTarget)),
INSTRUCTION(VFNMSUB213SSRegRegMem, vfnmsub213ss,
            BINARY(VEX_L128, VEX_vReg_, PREFIX_66, REX__, ESCAPE_0F38, 0xAF, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SingleFP | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_XMMSource | IA32OpProp1_SourceIsMemRef | IA32OpProp1_XMMTarget)),
INSTRUCTION(VFNMSUB231SSRegRegReg, vfnmsub231ss,
            BINARY(VEX_L128, VEX_vReg_, PREFIX_66, REX__, ESCAPE_0F38, 0xBF, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SingleFP | IA32OpProp_SourceRegisterInModRM | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_XMMSource | IA32OpProp1_XMMTarget)),
INSTRUCTION(VFNMSUB231SSRegRegMem, vfnmsub231ss,
            BINARY(VEX_L128, VEX_vReg_, PREFIX_66, REX__, ESCAPE_0F38, 0xBF, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_SingleFP | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_XMMSource | IA32OpProp1_SourceIsMemRef | IA32OpProp1_XMMTarget)),
INSTRUCTION(VFNMSUB132SDRegRegReg, vfnmsub132sd,
            BINARY(VEX_L128, VEX_vReg_, PREFIX_66, REX_W, ESCAPE_0F38, 0x9F, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_DoubleFP | IA32OpProp_SourceRegisterInModRM | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_XMMSource | IA32OpProp1_XMMTarget)),
INSTRUCTION(VFNMSUB132SDRegRegMem, vfnmsub132sd,
            BINARY(VEX_L128, VEX_vReg_, PREFIX_66, REX_W, ESCAPE_0F38, 0x9F, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_DoubleFP | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_XMMSource | IA32OpProp1_SourceIsMemRef | IA32OpProp1_XMMTarget)),
INSTRUCTION(VFNMSUB213SDRegRegReg, vfnmsub213sd,
            BINARY(VEX_L128, VEX_vReg_, PREFIX_66, REX_W, ESCAPE_0F38, 0xAF, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_DoubleFP | IA32OpProp_SourceRegisterInModRM | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_XMMSource | IA32OpProp1_XMMTarget)),
INSTRUCTION(VFNMSUB213SDRegRegMem, vfnmsub213sd,
            BINARY(VEX_L128, VEX_vReg_, PREFIX_66, REX_W, ESCAPE_0F38, 0xAF, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_DoubleFP | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_XMMSource | IA32OpProp1_SourceIsMemRef | IA32OpProp1_XMMTarget)),
INSTRUCTION(VFNMSUB231SDRegRegReg, vfnmsub231sd,
            BINARY(VEX_L128, VEX_vReg_, PREFIX_66, REX_W, ESCAPE_0F38, 0xBF, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_DoubleFP | IA32OpProp_SourceRegisterInModRM | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_XMMSource | IA32OpProp1_XMMTarget)),
INSTRUCTION(VFNMSUB231SDRegRegMem, vfnmsub231sd,
            BINARY(VEX_L128, VEX_vReg_, PREFIX_66, REX_W, ESCAPE_0F38, 0xBF, 0, ModRM_RM__, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesTarget | IA32OpProp_DoubleFP | IA32OpProp_UsesTarget),
            PROPERTY1(IA32OpProp1_XMMSource | IA32OpProp1_SourceIsMemRef | IA32OpProp1_XMMTarget)),

// OpCodes beyond this point are pseudo instructions; they are for OMR internal usage only.
INSTRUCTION(FENCE, Fence, // Address of binary is to be written to specified data address, SymbolReference controls code motion across fence
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x00, 0, ModRM_NONE, Immediate_0),
            PROPERTY0(0),
            PROPERTY1(IA32OpProp1_PseudoOp)),
INSTRUCTION(VGFENCE, VGFence, // Special Fence used for patching virtual guards
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x00, 0, ModRM_NONE, Immediate_0),
            PROPERTY0(0),
            PROPERTY1(IA32OpProp1_PseudoOp)),
INSTRUCTION(PROCENTRY, ProcEntry, // Entry to the method
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x00, 0, ModRM_NONE, Immediate_0),
            PROPERTY0(0),
            PROPERTY1(IA32OpProp1_PseudoOp)),
INSTRUCTION(DQImm64, dq, // Define 8 bytes
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x00, 0, ModRM_NONE, Immediate_8),
            PROPERTY0(0),
            PROPERTY1(IA32OpProp1_PseudoOp | IA32OpProp1_LongImmediate)),
INSTRUCTION(DDImm4, dd, // Define 4 bytes
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x00, 0, ModRM_NONE, Immediate_4),
            PROPERTY0(IA32OpProp_IntImmediate),
            PROPERTY1(IA32OpProp1_PseudoOp)),
INSTRUCTION(DWImm2, dw, // Define 2 bytes
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x00, 0, ModRM_NONE, Immediate_2),
            PROPERTY0(IA32OpProp_ShortImmediate),
            PROPERTY1(IA32OpProp1_PseudoOp)),
INSTRUCTION(DBImm1, db, // Define 1 byte
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x00, 0, ModRM_NONE, Immediate_1),
            PROPERTY0(IA32OpProp_ByteImmediate),
            PROPERTY1(IA32OpProp1_PseudoOp)),
INSTRUCTION(WRTBAR, wrtbar, // Write barrier directive/macro for GCs that need them
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x00, 0, ModRM_NONE, Immediate_0),
            PROPERTY0(IA32OpProp_UsesTarget | IA32OpProp_ModifiesTarget | IA32OpProp_IntSource | IA32OpProp_IntTarget | IA32OpProp_ByteTarget),
            PROPERTY1(IA32OpProp1_PseudoOp)),
INSTRUCTION(ASSOCREGS, assocRegs, // Directive to change register associations
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x00, 0, ModRM_NONE, Immediate_0),
            PROPERTY0(0),
            PROPERTY1(IA32OpProp1_PseudoOp)),
INSTRUCTION(FPREGSPILL, fpRegSpill, // Directive to force the FP stack to be spilled
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x00, 0, ModRM_NONE, Immediate_0),
            PROPERTY0(0),
            PROPERTY1(IA32OpProp1_PseudoOp)),
INSTRUCTION(VirtualGuardNOP, vgnop, // A virtual guard encoded as a NOP instruction
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x00, 0, ModRM_NONE, Immediate_0),
            PROPERTY0(IA32OpProp_BranchOp | IA32OpProp_TestsZeroFlag),
            PROPERTY1(IA32OpProp1_PseudoOp)),
INSTRUCTION(LABEL, Label, // Destination of a jump
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x00, 0, ModRM_NONE, Immediate_0),
            PROPERTY0(0),
            PROPERTY1(IA32OpProp1_PseudoOp)),
INSTRUCTION(FCMPEVAL, fcmpEval, // Instruction selection of FP comparisons at register assignment time
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x00, 0, ModRM_NONE, Immediate_0),
            PROPERTY0(0),
            PROPERTY1(IA32OpProp1_PseudoOp)),
INSTRUCTION(RestoreVMThread, RestoreVMThread, // restore VM thread register from fs:[0]
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x00, 0, ModRM_NONE, Immediate_0),
            PROPERTY0(0),
            PROPERTY1(IA32OpProp1_PseudoOp)),
INSTRUCTION(PPS_OPCount, PPS_OPCount, // Phase profiling site (object access counting)
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x00, 0, ModRM_NONE, Immediate_0),
            PROPERTY0(IA32OpProp_UsesTarget | IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag),
            PROPERTY1(IA32OpProp1_PseudoOp)),
INSTRUCTION(PPS_OPField, PPS_OPField, // Phase profiling site (object field counting)
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x00, 0, ModRM_NONE, Immediate_0),
            PROPERTY0(IA32OpProp_ModifiesOverflowFlag | IA32OpProp_ModifiesSignFlag | IA32OpProp_ModifiesZeroFlag | IA32OpProp_ModifiesParityFlag | IA32OpProp_ModifiesCarryFlag),
            PROPERTY1(IA32OpProp1_PseudoOp)),
INSTRUCTION(AdjustFramePtr, AdjustFramePtr, // Adjust frame pointer
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x00, 0, ModRM_NONE, Immediate_0),
            PROPERTY0(0),
            PROPERTY1(IA32OpProp1_PseudoOp)),
INSTRUCTION(ReturnMarker, ReturnMarker, // Return Marker for linkages that do not end with a RET instruction
            BINARY(VEX_L___, VEX_vNONE, PREFIX___, REX__, ESCAPE_____, 0x00, 0, ModRM_NONE, Immediate_0),
            PROPERTY0(0),
            PROPERTY1(IA32OpProp1_PseudoOp)),
